FCM ist abwärtskompatibel mit GCM. Die Schritte zum Einrichten von FCM unter AWS sind identisch mit dem GCM-Einrichtungsverfahren, und (zumindest im Moment) arbeitet FCM in Bezug auf die serverseitige Konfiguration transparent mit GCM und SNS zusammen.
Allerdings , wenn Sie, senden die data
Nutzlasten auf dem Android - Gerät werden sie nicht verarbeitet werden , wenn Sie einen implementieren Client - Seite Service , die erweitert FirebaseMessagingService
. Der Standard-JSON-Nachrichtengenerator in der AWS-Konsole sendet data
Nachrichten, die von Ihrer App ignoriert werden, sofern der oben genannte Dienst nicht implementiert ist. Um dies für erste Tests zu umgehen, können Sie eine benutzerdefinierte notification
Nutzlast bereitstellen , die von Ihrem Gerät empfangen wird (solange Ihre App nicht im Vordergrund steht).
Es gibt GCM-FCM-Migrationsanweisungen von Google. Die Änderungen, die Sie vornehmen müssen, sind jedoch überwiegend auf der App-Seite.
Die Schritte, die Sie ausführen müssen, um GCM / FCM in Ihrer App mit SNS zu testen, sind:
- Erstellen Sie eine Plattformanwendung in SNS , wählen Sie Google Cloud Messaging (GCM) als Push-Benachrichtigungsplattform aus und geben Sie Ihren Server-API-Schlüssel im Feld API-Schlüssel an .
- Wählen Sie die Plattformanwendung aus und klicken Sie auf die Schaltfläche Plattformendpunkt erstellen .
- Geben Sie die von Ihrer App generierte InstanceID ( Geräte-Token ) an. Sie müssen
FirebaseInstanceIDService
die onTokenRefresh
Methode erweitern und überschreiben , um dies in Ihrer Android-App anzuzeigen. Sobald Sie dies getan haben , deinstallieren Sie Ihre App und installieren Sie sie erneut. Ihr Token sollte beim ersten Start auf der Debug-Konsole in Android Studio gedruckt werden.
- Klicken Sie auf die Schaltfläche Endpunkt hinzufügen.
- Klicken Sie auf den ARN-Link für Ihre Plattformanwendung.
- Wählen Sie den neu erstellten Endpunkt für Ihr Gerät aus und klicken Sie auf die Schaltfläche Auf Endpunkt veröffentlichen .
- Wählen Sie das JSON- Nachrichtenformat aus und klicken Sie auf die Schaltfläche JSON-Nachrichtengenerator .
- Geben Sie eine Testnachricht ein und klicken Sie auf die Schaltfläche JSON generieren
- Jetzt kommt der "Gotcha-Teil".
Die von SNS generierte Nachricht hat folgende Form:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Wie bereits erwähnt, werden data
Nutzdaten ignoriert, wenn kein Dienst zum Empfangen implementiert wurde. Wir möchten testen, ohne zu viel Code zu schreiben, daher sollten wir stattdessen eine notification
Nutzlast senden . Ändern Sie dazu einfach die JSON-Nachricht in:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Stellen Sie anschließend sicher, dass Ihre App nicht auf dem Gerät ausgeführt wird, und klicken Sie auf die Schaltfläche Nachricht veröffentlichen . Auf Ihrem Gerät sollte jetzt eine Benachrichtigung angezeigt werden.
Sie können dies natürlich programmgesteuert über die Amazon SNS-API tun. Alle Beispiele scheinen jedoch die data
Nutzlast zu verwenden. Sie müssen dies berücksichtigen und eine Nutzlast generieren, die Ihrem Anwendungsfall entspricht.