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 dataNutzlasten 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 dataNachrichten, 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 notificationNutzlast 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
FirebaseInstanceIDServicedie onTokenRefreshMethode 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 dataNutzdaten ignoriert, wenn kein Dienst zum Empfangen implementiert wurde. Wir möchten testen, ohne zu viel Code zu schreiben, daher sollten wir stattdessen eine notificationNutzlast 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 dataNutzlast zu verwenden. Sie müssen dies berücksichtigen und eine Nutzlast generieren, die Ihrem Anwendungsfall entspricht.