13

Sto pensando di mantenere tutti gli ID di registrazione (push token) nel DB e l'invio di notifiche all'utente da iPhone. Ho provato qualcosa di simile ma non ho ricevuto alcuna notifica.È possibile inviare PushNotifications, utilizzando Firebase Cloud Messaging (FCM) a UDID speciale, direttamente dal dispositivo?

func sendPNMessage() { 
    FIRMessaging.messaging().sendMessage(
     ["body": "hey"], 
     to: TOKEN_ID, 
     withMessageID: "1", 
     timeToLive: 108) 
} 

Cosa sto facendo male o forse è impossibile?

risposta

18

Attualmente non è possibile inviare messaggi dall'applicazione stessa. È possibile inviare messaggi dalla console Web Firebase o da un server personalizzato utilizzando le API sul lato server.

Ciò che si potrebbe desiderare di fare è contattare un server (come tramite chiamata http) e quel server invierà il messaggio all'utente. In questo modo, assicurarsi che la chiave API del server sia protetta.

PS: l'API sendMessage(..) viene chiamata funzionalità di upstream e può essere utilizzata per inviare messaggi dall'app al server, se il server ha una connessione XMPP con il server FCM.

+1

Sembra che ho bisogno di un server per inviare notifiche push.Grazie per la risposta! – Svitlana

+0

@Svitlana: se questa risposta è stata utile, fare clic sul pulsante di espansione a sinistra di esso. Se ha risposto alla tua domanda, fai clic sul segno di spunta per accettarlo. In questo modo gli altri sanno che sei stato (sufficientemente) aiutato. –

+0

Grazie per la risposta, funzionerà con il server! – Svitlana

7

Sì, è possibile inviare notifiche push tramite Firebase. Assicurarsi di NON includere la chiave del server nel client. Ci sono modi "per persone non così grandi" per trovarlo e fare cose ... Il modo corretto per raggiungere questo è per il tuo cliente per istruire il tuo server app per inviare la notifica.

È necessario inviare un post HTTP all'endpoint dell'API di Google.

sono necessari i seguenti intestazioni:

Content-Type: application/json 
Authorization: key={your_server_key} 
You can obtain your server key within in the Firebase-Project. 

HTTP-Post-Content: Sample 

{ 
    "notification": { 
     "title": "Notification Title", 
     "text": "The Text of the notification." 
    }, 
    "project_id": "<your firebase-project-id", 
    "to":"the specific client-device-id" 
} 
+0

Si dice sì, altri dicono di no .... comprese le persone che lavorano per Firebase ... quindi qual è la risposta corretta? –

+1

Ho implementato questo e funziona bene per me :) –

+0

Sono tecnicamente entrambi corretti. Questa risposta è quella che funziona, ma non dovrebbe essere fatta perché stai esponendo la tua chiave del server al mondo – Mbrevda

1

funzioni di Google Cloud lo rendono ora possibile inviare le notifiche push da dispositivo a dispositivo senza un application server.

From the Google Cloud Functions documentation:

Gli sviluppatori possono utilizzare le funzioni cloud per mantenere gli utenti impegnati e fino a aggiornati con le informazioni rilevanti su un app. Si consideri, ad esempio, un'app che consente agli utenti di seguire le attività reciproche nell'app. In una app di questo tipo, una funzione attivata dal database Realtime scrive su nuovi follower del negozio può creare notifiche Firebase Cloud Messaging (FCM) per consentire agli utenti appropriati di aver ottenuto nuovi follower .

Esempio:

  1. La funzione attiva sul scrive al percorso di database in tempo reale in cui sono memorizzati i seguaci.

  2. La funzione compone un messaggio da inviare tramite FCM.

  3. FCM invia il messaggio di notifica al dispositivo dell'utente.

Here is a demo project per l'invio di notifiche push dispositivo a dispositivo con Firebase e Google Cloud funzioni.

Problemi correlati