FCM è retrocompatibile con GCM. I passaggi per la configurazione di FCM su AWS sono identici alla procedura di configurazione di GCM e (almeno per il momento) FCM funziona in modo trasparente con GCM e SNS rispetto alla configurazione lato server.
Tuttavia , se invii data
payload al dispositivo Android, non verranno elaborati a meno che non implementi un servizio lato client che si estende FirebaseMessagingService
. Il generatore di messaggi JSON predefinito nella console AWS invia data
messaggi, che verranno ignorati dalla tua app a meno che non venga implementato il servizio di cui sopra. Per aggirare questo problema per i test iniziali, puoi fornire un notification
payload personalizzato che verrà ricevuto dal tuo dispositivo (purché la tua app non sia in primo piano)
Ci sono istruzioni per la migrazione GCM-FCM fornite da Google, tuttavia le modifiche che devi apportare sono prevalentemente sul lato dell'app.
I passaggi che devi seguire per testare GCM / FCM sulla tua app con SNS sono:
- Crea un'applicazione della piattaforma in SNS , selezionando Google Cloud Messaging (GCM) come piattaforma di notifica push e fornendo la tua chiave API del server nel campo della chiave API .
- Selezionare l'applicazione della piattaforma e fare clic sul pulsante Crea endpoint piattaforma .
- Fornisci l'ID istanza ( token del dispositivo ) generato dalla tua app. È necessario estendere
FirebaseInstanceIDService
e sovrascrivere il onTokenRefresh
metodo per visualizzarlo nella tua app Android. Dopo averlo fatto , disinstalla e reinstalla l'app e il tuo token dovrebbe essere stampato sulla console di debug in Android Studio al primo avvio.
- Fare clic sul pulsante Aggiungi endpoint .
- Fare clic sul collegamento ARN per l'applicazione della piattaforma.
- Seleziona l'endpoint appena creato per il tuo dispositivo e fai clic sul pulsante Pubblica su endpoint .
- Seleziona il formato del messaggio JSON e fai clic sul pulsante del generatore di messaggi JSON .
- Immettere un messaggio di prova e fare clic sul JSON Genera tasto
- Ora arriva la "parte gotcha".
Il messaggio generato da SNS avrà la forma:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Come accennato in precedenza, i data
payload verranno ignorati se non è stato implementato alcun servizio per riceverli. Vorremmo testare senza scrivere troppo codice, quindi dovremmo inviare un notification
payload. Per fare ciò, cambia semplicemente il messaggio JSON in:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Dopo averlo fatto, assicurati che la tua app non sia in esecuzione sul dispositivo e premi il pulsante Pubblica messaggio . Ora dovresti vedere una notifica pop-up sul tuo dispositivo.
Ovviamente puoi fare tutto questo in modo programmatico tramite l'API Amazon SNS, tuttavia tutti gli esempi sembrano utilizzare il data
payload, quindi devi tenerlo a mente e generare un payload appropriato al tuo caso d'uso.