Ich bin dabei, die Kommunikation zwischen mobilen Apps und Browser-Apps mithilfe von Firebase-Cloud-Messaging zu implementieren, und ich habe ein paar Fragen, auf die die Dokumente nicht zu antworten scheinen.
Um Nachrichten empfangen zu können, benötigen Sie einen Registrierungstoken (RT).
Nachrichten können an eine RT, an ein Thema oder an eine Gerätegruppe notification_key
gesendet werden. Die RT kann auch verwendet werden:
Die RT kann auch ablaufen / ändern.
In meiner App führe ich eine RT-Liste pro Benutzer. Jetzt, wenn sich die RT ändert:
Tut mir leid, das sind eine Menge Fragen, aber ich denke, für jemanden, der das durchgemacht hat, sollte es Kuchen sein;)
- Muss ich das alte Token abbestellen und das neue Token für Themen abonnieren?
AFAIK, Sie müssen das alte Token nicht abbestellen, da es vom FCM selbst verworfen wird. Für das neue Token müssen Sie es für das gewünschte Thema abonnieren. Das Übliche ist (in Android) mit subscribeToTopic()
in onTokenRefreshed()
gemacht.
- Muss ich das alte Token entfernen und das neue Token den Gerätegruppen hinzufügen?
Ja. Sie müssen die Zuordnung / Beziehungen für Device Group Messaging behandeln. Siehe meine Antwort hier . Dies ist anders als bei Themen. Das Token wird ungültig gemacht, aber als Teil der Liste der Registrierungstoken für den entsprechenden Registrierungsschlüssel beibehalten.
Deshalb gibt es die Möglichkeit, einen NotRegistred
Fehler auf einem der Token zu erhalten, wenn Sie an die Gerätegruppe senden. :)
- Ist es möglich, Informationen zu Gerätegruppen / Themen für ein Token zu erhalten?
Für Device Group Messaging (identisch mit # 2) muss der Entwickler (Sie) diese Details selbst verwalten. Für Themen können Sie die Instanz-API verwenden. Setzen Sie den Parameter details
insbesondere auf true
:
[optional] boolean
details
: Setzen Sie diesen Abfrageparameter auftrue
, um IID-Token-Details einschließlich Verbindungsinformationen und FCM- oder GCM-Subskriptionsinformationen (falls vorhanden) für das diesem Token zugeordnete Gerät zu erhalten. Wenn nicht angegeben, wird standardmäßigfalse
verwendet.
- Kann ich ein Token mehr als einmal zu einer Gerätegruppe hinzufügen?
Ahhm. Ja. Meinst du das gleiche Token? Wenn ja, habe ich es noch nicht ausprobiert. Es könnte auch eine Überprüfung auf der Clientseite vor dem Hinzufügen erfolgen.
- Kann ich ein Token mehr als einmal für ein Thema abonnieren?
Wenn Sie erneut abonnieren möchten, dann ja. Wenn Sie eine doppelte Anfrage zum Abonnieren meinen, wäre das Ergebnis meiner Meinung nach immer noch ein Erfolg. Keine Änderungen im Verhalten obwohl.
- Werden Mehrfachabonnements / -erweiterungen desselben Tokens zum Erhalt doppelter Nachrichten führen?
Es wurde getestet. Sie erhalten keine doppelten Nachrichten für doppelte Topic-Subskriptionen und das Hinzufügen des gleichen Tokens zu einer Gerätegruppe. Es scheint, dass FCM die Anforderung ignoriert, ein Registrierungstoken zu abonnieren / hinzuzufügen, wenn es bereits einer Gerätegruppe zugewiesen ist.
Tags und Links firebase firebase-cloud-messaging registration token