3

Hier, Google a annoncé un nouvel ensemble d'outils pour Firebase, l'un d'eux était Notifications la possibilité d'envoyer des notifications du serveur aux appareils qui utilisent mon application. Mais pouvons-nous maintenant informer les utilisateurs quand ils reçoivent un nouveau message?Notifications push à travers Firebase

Et si ce n'est pas le cas, y a-t-il un moyen de réaliser cela?

+2

Si vous voulez dire un nouveau message d'un autre utilisateur alors je me demandais aussi cela. En regardant la documentation, il semble que ce n'est toujours pas possible automatiquement. Je pense que vous devez avoir une autre vérification du serveur pour chaque message envoyé, puis créer une notification marquée avec l'ID de l'utilisateur destinataire. Ensuite, vous inscrivez le destinataire à son propre identifiant. Cochez [link] (https://firebase.google.com/docs/notifications/android/console-topics#receive_topic_messages_on_an_android_client_app) – user2997154

+1

Grande chasse dans les docs @ user2997154. Si vous l'écrivez comme une réponse, je vais upvote. :-) –

Répondre

5

En regardant la documentation, cela ne semble actuellement pas possible automatiquement. Voici un moyen possible d'accomplir "manuellement" avec un autre serveur:

  1. Abonnez-vous un utilisateur à son propre ID utilisateur

Dans android

FirebaseMessaging.getInstance().subscribeToTopic("InsertUserIDHere"); 

Dans IOS

[[FIRMessaging messaging] subscribeToTopic:@"/topics/InsertUserIDHere"]; 
  1. Configurez un serveur externe qui vérifie s tous les messages envoyés. Lorsqu'un message est envoyé, le serveur doit créer une notification qui inclut l'ID utilisateur du destinataire en tant que sujet.

Regardez here pour plus d'informations.

+0

Brillant! J'ai 2 questions si je peux.Tout d'abord, comment allons-nous envoyer des notifications en utilisant un autre serveur, Firebase permet uniquement l'envoi de notifications via la console. Deuxièmement, sera-t-il efficace si j'ai beaucoup d'utilisateurs? Les docs disent "il peut y avoir un retard de jusqu'à un jour avant que de nouveaux sujets soient affichés dans la console". Merci. – Khaled

+0

Ne tenez pas compte du dernier commentaire que j'ai fait. Regardez [ici] (https://firebase.google.com/docs/cloud-messaging/topic-messaging) pour plus d'informations sur l'envoi de messages via un serveur sans la console. Je ne suis pas sûr si le délai est toujours applicable si vous n'utilisez pas la console. – user2997154

1

Vous pouvez envoyer des messages à un groupe d'utilisateurs (ciblant un «sujet» spécifique) ou à un seul périphérique (ciblant un jeton Firebase Cloud Messaging).

Pour vous abonner un appareil à un usage topique:

FirebaseMessaging.getInstance().subscribeToTopic("topicName"); 

Pour obtenir l'utilisation symbolique de l'appareil (* 1):

FirebaseInstanceId.getInstance().getToken(); 

Ensuite, vous pouvez utiliser la console Web Firebase Notificaitons, ou API du serveur FCM si vous souhaitez envoyer des messages depuis votre serveur.
Voir: https://firebase.google.com/docs/cloud-messaging/downstream#sending_topic_messages_from_the_server


Notes:

[1] getToken() peut retourner null si le jeton est pas encore disponible.
Vous pouvez utiliser le rappel onTokenRefresh() pour être averti lorsque le jeton est disponible et lorsque le jeton est pivoté.
Voir: https://firebase.google.com/docs/cloud-messaging/android/client#sample-register