Wie zu senden, um eine Nachricht über FB Messaging
Habe ich versucht zu Lesen, die offiziellen Dokumente und Anleitungen darüber, wie um eine Nachricht zu senden von einem Gerät zum anderen. Ich habe gespeichert Registrierung token der beiden Geräte in der Echtzeit-Datenbank, daher habe ich die Registrierung token von einem anderen Gerät.
Ich habe versucht, den folgenden Weg, um die Nachricht zu senden
RemoteMessage message = new RemoteMessage.Builder(getRegistrationToken())
.setMessageId(incrementIdAndGet())
.addData("message", "Hello")
.build();
FirebaseMessaging.getInstance().send(message);
Dies ist jedoch nicht arbeiten. Das andere Gerät erhält keine Nachricht. Ich bin nicht mal sicher, ob ich verwenden kann, upstream-Nachricht senden zu Verhalten device-to-device-Kommunikation.
PS: ich möchte nur wissen, wenn device-to-device-messaging ist möglich, mit FCM? Wenn ja, dann ist der code, den ich verwendet haben ein Problem? Wenn ja, dann was ist der richtige Weg.
Update:
Meine Frage war, zu Fragen, ob die device-to-device-messaging-ohne separaten server als FB könnte messaging möglich ist oder nicht, wenn ja, als wie Sie, da es keine Dokumentation darüber. Ich verstehe nicht, was ist Links, um hier zu erklären? Jedenfalls bekam ich die Antwort und aktualisieren als Antwort wieder einmal die Frage wird wieder geöffnet.
- Wenn das jemand nicht verstehen kann ich den code Hinzugefügt, Sie sind nicht berechtigt, die Antwort sowieso. Wenn Sie je benutzt habe FCM vor, dieser code stammt direkt von der offiziellen guide, mit Ausnahme der Registrierung-token Teil. Willen Verständnis, bitte Lesen Sie das update.
- es ist ein Problem
getInstance()send
... dies wäre auch gar nicht kompilieren - Tippfehler, Wie wäre es jetzt?
- Bitte aktualisieren Sie Ihre Lösung.. ich bin auf der Suche nach es für die Letzte 3 Tage..!!
- Ich habe die Lösung jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
FB hat zwei Funktionen zum senden von Nachrichten an Geräte:
Den FB-Dokumentation zeigt dies visuell:
Senden von Nachrichten von einem Gerät direkt an ein anderes Gerät ist nicht unterstützt durch FB Cloud-Messaging.
Update: ich schrieb einen blog-post mit Details wie zum senden von Nachrichten zwischen Android-Geräten über FB-Datenbank, Cloud-Messaging-und Node.js.
Update 2: Sie können nun auch Cloud-Funktionen für FB zum senden von Nachrichten sicher, ohne schleudern einen server. Sehen dieses Beispiel-use-case, um loszulegen.
Ok, so die Antwort von Frank war richtig, dass
Firebase
tut nicht nativ unterstützt device-to-device-messaging. Allerdings gibt es ein Schlupfloch in dieser. Die FB-server nicht erkennen, ob Sie haben senden Sie den Antrag-von einem echten server oder tun Sie es von Ihrem Gerät.So alle Sie tun müssen ist, senden Sie eine
Post Request
zuFirebase
's messaging-server zusammen mit dem Server-Schlüssel. Nur dies im Hinterkopf behalten, dass der server-Schlüssel ist eigentlich nicht auf dem Gerät, aber es gibt keine andere option, wenn Sie möchten device-to-device-messaging mit FB Messaging.Ich bin mit OkHTTP anstelle der Standard-Weg von aufrufen der Rest-API. Der code ist so etwas wie das -
Ich hoffe Feuerstellung kommen mit eine bessere Lösung in der Zukunft. Aber bis dahin, ich denke, das ist der einzige Weg. Die andere Möglichkeit wäre Thema senden Nachricht oder messaging-Gruppe. Aber das war nicht in den Anwendungsbereich der die Frage.
Update:
Die JSONArray ist wie folgt definiert -
regIds ist ein String-array von Registrierungs-ids, die Sie wollen, um diese Nachricht zu senden. Beachten Sie, dass die Registrierungs-ids müssen immer in ein array, auch wenn Sie es wollen, zum senden an einen einzigen Empfänger.
recipients
JsonArray.. Nur auf die überprüfen müssen format des Arrays.. Danke für die Lösung 🙂FirebaseMessaging.getInstance().send(RemoteMessage.Builder(SENDER_ID+"@gcm.googleapis.com").setMessageId("id-1234").setData("key","value").build));
?JSON = MediaType.parse("application/json; charset=utf-8")
Ich habe auch mit direkter device-to-device-messaging gcm in meinem Prototyp. Es hat sehr gut funktioniert. Wir haben keinen server. Wir tauschen GCM reg-id mit sms/text und dann die Kommunikation mithilfe von GCM nach, dass. Ich Stelle hier code für GCM Umgang
**************Senden GCM-Nachricht*************
**************Empfangen von GCM-Nachricht*************
Ich bin spät dran aber die oben genannten Lösungen hat geholfen, mir zu notieren, diese einfache Antwort, können Sie senden Sie Ihre Nachricht direkt an android-Geräte von android-Anwendung, hier ist die einfache Implementierung, die ich getan habe und es funktioniert Super für mich.
kompilieren android-volley-Bibliothek
Kopieren Sie einfach fügen Sie diese einfache Funktion 😉 und dein Leben wird glatt wie Messer in butter. 😀
Hinweis
Wenn Sie die Nachricht senden wollen, zu Themen, so können Sie parameter ändern instanceIdToken etwas wie /Themen/topicName.
Für Gruppen Umsetzung ist das gleiche, aber Sie müssen nur aufpassen Parameter. Kasse FB-Dokumentation und übergeben Sie diesen Parameter.
lassen Sie mich wissen, wenn Sie irgendwelche Problem.
Gemäß der neuen Dokumentation wurde aktualisiert am
October 2, 2018
senden Sie post-Anforderung wie untenZu bekommen, Gerät die Registrierung token verlängern
FirebaseMessagingService
und überschreibenonNewToken(String token)
Für weitere Informationen siehe doc https://firebase.google.com/docs/cloud-messaging/android/device-group