8

Sto sviluppando un'app di chat utilizzando Firebase come backend. E 'necessario che su ogni nuovo messaggio il destinatario ottenga una notifica push che dice che ha ricevuto un nuovo messaggio. Questa è la prima volta che faccio qualcosa del genere quindi ho una domanda:Firebase chat Notifiche Push

Poiché non usiamo il nostro server per questo, abbiamo bisogno di un fornitore di terze parti (come ad esempio Batch) per la gestione delle notifiche push? Se non sbaglio, Firebase non supporta l'invio di notifiche push come questa, ma solo quelle inviate dalla console.

Qualsiasi aiuto sarebbe grande.

+1

"Se non erro penso che Firebase non supporti l'invio di notifiche push come questa ma solo quelle inviate dalla console." ... hai ragione –

risposta

17

Spero che qualcuno lo trovi utile, mi ha aiutato nel mio caso.

Attualmente non è possibile inviare notifiche push da dispositivo a dispositivo con le offerte della soluzione Firebase. Se vuoi quel tipo di cose, dovresti provare OneSignal che è gratuito e molto facile da implementare.

+2

Questa dovrebbe essere la risposta accettata per i messaggi push da dispositivo a dispositivo, come se fosse necessario in un'app di messaggistica. – n6xej

+1

Questo è ESATTAMENTE quello di cui avevo bisogno. Sono stato alla ricerca di giorni. Grazie. – Jason

+1

Come è possibile spiegarlo. Non trovo nulla con OneSignal. –

5

Ci sono due caratteristiche della nuova Firebase per inviare notifiche agli utenti:

  • Firebase Cloud Messaging - la nuova generazione di Google Cloud Messaging
  • Firebase Notifiche - costruito sulla cima del Cloud Messaging, che permettono per inviare facilmente notifiche agli utenti tramite la Firebase Console

Per inviare messaggi con Cloud Messaging, è necessario specificare una chiave di autorizzazione in una richiesta. Dal momento che la conoscenza di questa chiave consente l'invio di messaggi per conto tuo, ti consigliamo di limitare l'accesso ad essa a processi fidati. Questo infatti può essere un server, ma qualsiasi processo fidato va bene.

+0

Quindi questo significa che senza server (che non abbiamo) dobbiamo usare servizi di terze parti come Batch? – ZassX

+0

@ZassX: Posso chiedere se e come risolto il problema? Grazie in anticipo. – MJQZ1347

+0

@ MJQZ1347 ha appena pubblicato una soluzione che ha funzionato per me, per favore vedi la mia risposta. – ZassX

-5

È possibile inviare una notifica push da Android utilizzando richiesta HTTP POST, sto usando retrofit per fare questo, ad esempio:

Url: https://fcm.googleapis.com/fcm/send

intestazioni HTTP:

Content-Type: application/json 
Authorization: key=Your_FCM_Key 

corpo (Json):

{ 
"to" : "user_device_id" 
    "data" : { 
    "message": "test message", 
    "color": "black" 
    }, 
    "notification" : { 
    "title": "Testing FCM", 
    "body":"My first notification", 
    "tag":"chat_msg", 
    "color" : "#FF4081", 
    "icon" : "ic_stat_onesignal_default", 
    } 
} 

È possibile eseguire un test utilizzando Advanced Re st Client "Estensione di Google Chrome"

+0

L'FCM_KEY non intende essere un segreto. Non inserirlo mai direttamente nella tua app. – Suyash

0

(iOS) Un po 'tardi; ma forse può aiutare chiunque in futuro con questo.

Recentemente ho riscontrato questo problema e la mia soluzione era utilizzare il metodo del gruppo di dispositivi.

Ergo:

  1. creerebbe un gruppo di dispositivi con i registration_ids (o matrice di ID di dispositivo per la spinta)

  2. Sarebbe quindi inviare la spinta a detto gruppo di dispositivi

  3. Elimina gruppo dispositivo

Vedi: https://firebase.google.com/docs/cloud-messaging/ios/device-group