Comment envoyer un périphérique à l'autre des messages à l'aide de Firebase Messagerie en Nuage?
Après une recherche dans les docs que je ne pouvais pas trouver toutes les informations sur la manière d'envoyer un appareil à l'autre des messages à l'aide de la FCM, sans l'utilisation d'un serveur externe.
Par exemple, si j'ai été la création d'une application de chat j'aurais besoin d'envoyer des notifications push aux utilisateurs sur les messages non lus, puisqu'ils ne pas être en ligne tout le temps et je ne peux pas avoir une persistance de service en arrière-plan qui permettrait de toujours être connecté à la base de données temps réel parce que ce serait trop de ressources lourd.
Alors, comment aurais-je envoyer une notification push à un utilisateur "A" lorsqu'un certain utilisateur "B" envoie-lui un message de chat? Ai-je besoin d'un serveur externe pour cela, ou peut-il être fait avec juste Firebase serveurs?
- Je n'ai pas utilisé la FCM encore,....mais j'ai utilisé GCM....en supposant que la FCM est presque comme GCM.....appareil, envoyez le message à un serveur qui va pousser le message à l'appareil B. découvrez firebase.google.com/support/faq/#messaging-difference
- Ouais je sais que cela peut être fait en utilisant un serveur externe. Je me demande si peut être fait sans elle car cela impliquerait de m'entretenir et de payer pour les deux serveurs au lieu d'un.
- il est obligatoire de lancer votre propre serveur pour envoyer des FCM messages entre vos appareils. Si vous êtes inquiet au sujet des coûts de fonctionnement du serveur, vous pouvez commencer à déployer pour Openshift Online (PaaS) ou Google AppEngine (PaaS trop) qui ont un quota gratuit.
- MrBrightside: sonne comme une réponse. 🙂
- stackoverflow.com/questions/38432243/...
- vous pouvez envoyer des notifications à l'aide d'une requête post vers un autre appareil
- Voir: firebase.googleblog.com/2016/08/...
- il semble que vous pouvez envoyer un périphérique à l'autre message via un http post sans avoir votre propre serveur, en fonction de cette documentation sur firebase: firebase.google.com/docs/cloud-messaging/http-server-ref je n'ai pas été en mesure de comprendre comment faire la requête post. quelqu'un a déjà essayé ça? Il semble trop beau pour être vrai.
- C'est maintenant possible avec Google Cloud Fonctions pour envoyer de périphérique à périphérique messages. Voir la réponse ci-dessous: stackoverflow.com/a/47106374/144088
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR: Il est maintenant possible d'utiliser firebase cloud fonctionne comme le serveur pour la gestion des notifications push. Consultez leur documentation ici
============
Selon les docs vous doit mettre en œuvre un serveur pour la gestion des notifications push dans un appareil à l'autre de la communication.
Si vous avez seulement besoin d'envoyer de base des notifications à vos utilisateurs du serveur. Vous pouvez utiliser leur solution sans serveur, Firebase Notifications.
Voir une comparaison entre la FCM et Firebase Notifications:
https://firebase.google.com/support/faq/#messaging-difference
De faire une requête HTTP POST avec le lien https://fcm.googleapis.com/fcm/send avec nécessaire d'en-tête et de données m'a aidé. Dans l'extrait de code ci-dessous
Constants.LEGACY_SERVER_KEY
est une variable de classe, vous pouvez le trouver sur votre Firebase ProjetSettings->Cloud Messaging->Legacy Server key
. Vous avez besoin de passer l'enregistrement du périphérique jeton c'est à direregToken
dans l'extrait de code ci-dessous référencé ICI.Enfin, vous avez besoin okhttp dépendance de bibliothèque afin d'obtenir cet extrait de code de travail.
plus loin si vous voulez envoyer le message à un sujet en particulier, remplacer
regToken
en json comme ceet n'oubliez pas d'ajouter d'autorisations INTERNET dans votre AndroidManifest.xml.
IMPORTANT : - à l'Aide de code ci-dessus signifie que votre serveur de clé réside dans l'application client. C'est dangereux que quelqu'un peut creuser dans votre application et obtenir la clé du serveur pour envoyer malveillant des notifications à vos utilisateurs.
remoteMessage.getData()
est null (Vide) s'il vous Plaît aiderOui, il est possible de le faire sans aucun serveur. Vous pouvez créer un groupe de périphériques côté client et ensuite vous échanger des messages dans le groupe. Cependant il y a des limites:
Référence: Firebase doc Voir la section "Gestion des groupes de périphériques sur Android applications client"
1) s'abonner à l'identique de nom de rubrique, par exemple:
2) envoyer des messages à l'intérieur de l'application
GoogleFirebase : Comment envoyer le sujet des messages
Vous pouvez le faire en utilisant Volly Jsonobject demande....
suivez cette procédure en premier lieu:
1 copie de legs la clé du serveur et de le stocker en tant que Legacy_SERVER_KEY
vous pouvez le voir en image comment obtenir
2 Vous avez besoin de Volley dépendance
Code pour envoyer des Push:-
Appelez simplement sendFCMPush();
Si vous avez de la fcm(gcm) jeton de l'appareil auquel vous souhaitez envoyer une notification. C'est juste un post de demande d'envoyer la notification.
https://github.com/prashanthd/google-services/blob/master/android/gcm/gcmsender/src/main/java/gcm/play/android/samples/com/gcmsender/GcmSender.java
Vous pouvez utiliser de Rénovation. Abonnez-vous des appareils à la rubrique actualités. Envoyer une notification d'un appareil à l'autre.
Pojo
et
et FirebaseAPI
Google Cloud Fonctions permettent désormais possible d'envoyer des notifications push à partir d'un périphérique à périphérique sans un serveur d'application.
À partir de la page correspondante sur Google Cloud Fonctions:
Voici une démo du projet pour l'envoi de périphérique à périphérique notifications push avec Firebase et Google Cloud Fonctions.
Google Cloud Fonctions permettent désormais possible d'envoyer des notifications push à partir d'un périphérique à périphérique sans un serveur d'application.
J'ai fait fonction cloud qui se déclenchent quand un nouveau message est ajouté dans la base de données
Il est
node.js
codeDans mon cas, j'utilise rénovation avec cette classe Message:
Données
Notification
cela l'appel
notre ServiceAPi
Vous pouvez utiliser firebase en temps réel de la base de données pour le faire. Vous pouvez créer la structure de données pour stocker les chats et ajouter des observateurs pour les fils de discussion pour les utilisateurs. Il ne fait toujours l'appareil - serveur de périphérique de l'architecture, mais dans ce cas il n'y a pas de serveur supplémentaire sur les développeurs de la partie. Il utilise la firebase serveurs. Vous pouvez consulter un tutoriel ici (ignorer la partie de l'INTERFACE utilisateur, bien, qui est également un bon point de départ pour discuter des cadres de l'INTERFACE utilisateur).
Firebase De Chat En Temps Réel
Donc j'ai eu une idée ici. Voir: Si la FCM, ainsi que la GCM, a un endpoit http demander où l'on peut envoyer un post de json avec notre message de données, y compris le jeton (s) de dispositifs que nous voulons que ce message soit remis.
Alors pourquoi ne pas envoyer un post pour Firebase serveur avec cette notification, pour être livré à l'utilisateur B? vous comprenez ?
Donc, vous envoyez le message et de discuter avec un appel de poste pour assurer la livraison de la notification, si l'utilisateur est à votre application en arrière-plan. Je suis également besoin de ça bientôt, je vais tester plus tard. Qu'en dites-vous?
Façon la plus simple :
Créer une Classe pour faire de l'Objet:
Créer une Classe pour faire de l'Objet: