web-dev-qa-db-fra.com

Est-il possible d'envoyer des notifications en utilisant FCM (Firebase Cloud Messaging) vers un UDID spécial, directement à partir du périphérique?

Je songe à conserver tous les identifiants d’enregistrement (push token) dans la base de données et à envoyer des notifications à l’utilisateur depuis l’iPhone. J'ai essayé quelque chose comme ça mais je n'ai reçu aucune notification.

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

Qu'est-ce que je fais mal ou peut-être est-ce impossible?

15
Svitlana

Actuellement, il n'est pas possible d'envoyer des messages à partir de l'application elle-même. Vous pouvez envoyer des messages à partir de la console Web Firebase ou d'un serveur personnalisé à l'aide des API côté serveur.

Ce que vous pourriez vouloir faire est de contacter un serveur (par exemple via un appel http) et ce serveur enverra le message à l'utilisateur. De cette façon, assurez-vous que la clé API-KEY du serveur est protégée.

PS: l’API sendMessage(..) est appelée fonctionnalité amont et peut être utilisée pour envoyer des messages de votre application à votre serveur, si votre serveur dispose d’une connexion XMPP avec le serveur FCM.

19
Diego Giorgini

Oui, vous pouvez envoyer une notification Push via Firebase. Assurez-vous de ne PAS inclure la clé de serveur dans votre client. Il existe des moyens "pour des personnes pas si formidables" de le trouver et de faire des choses ... La meilleure façon de le faire est que votre client demande à votre serveur d'applications d'envoyer la notification.

Vous devez envoyer un message HTTP à Google-API-Endpoint.

Vous avez besoin des en-têtes suivants:

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"
}
7
Dupinder kaur

Les fonctions Google Cloud rendent désormais possible l'envoi de notifications Push d'un appareil à l'autre sans serveur d'applications.

À partir de la documentation de Google Cloud Functions:

Les développeurs peuvent utiliser les fonctions de cloud pour que les utilisateurs restent informés des informations pertinentes sur une application. Prenons, par exemple, une application qui permet aux utilisateurs de suivre les activités des autres utilisateurs dans l’application. Dans une telle application, une fonction déclenchée par les écritures de la base de données Realtime pour stocker de nouveaux abonnés pourrait créer des notifications FCM (Firebase Cloud Messaging) afin d'informer les utilisateurs appropriés qu'ils ont gagné de nouveaux abonnés.

Exemple:

  1. La fonction se déclenche lors des écritures sur le chemin de la base de données Realtime où les suiveurs sont stockés.

  2. La fonction compose un message à envoyer via FCM.

  3. FCM envoie le message de notification au périphérique de l'utilisateur.

Voici un projet de démonstration pour l'envoi de notifications Push d'un appareil à l'autre avec Firebase et Google Cloud Functions.

2
Crashalot

La réponse de Diego est très précise, mais il existe également des fonctions de cloud de Firebase. Il est très pratique d'envoyer des notifications à chaque changement de base de données. Par exemple, supposons que vous construisez une application de chat et envoyez une notification à chaque nouveau changement de suiveur. Cet exemple de fonction est un très bon exemple.

Pour plus d'informations sur les fonctions du cloud, vous pouvez consulter documentation officielle .

1
mert