Prise en charge de Firebase Android
Prise en charge de Firebase Android
RAD Studio 10.3 Release 2 prend en charge Firebase sous Android. Pour activer Firebase Android pour votre application, suivez les étapes ci-après :
1. Accédez à https://console.firebase.google.com/, cliquez sur Ajouter un projet et entrez un nom pour votre projet (par ex. FirebaseApp).
2. Lorsqu'un message vous demande de configurer Google Analytics pour votre projet, sélectionnez Not right now, et cliquez sur Create project.
3. Une fois le projet créé, vous devez recenser l'application FMX Android .
Dans le volet de navigation de gauche, cliquez sur l'icône Outils et sélectionnez Project settings.
4. Cliquez sur l'icône Android pour accéder à la page Add Firebase to your Android app.
5. Le nom de package par défaut pour une application FireMonkey est com.embarcadero.FirebaseApp. Toutefois, il est conseillé de le changer en com.yourcompany.packagename pour vos propres applications.
6. Téléchargez le fichier de configuration.
Cliquez sur Suivant et ignorez cette étape à ce stade.
7. Dans l'EDI, accédez à Projet > Options... > Application > Services puis cliquez sur Importer pour importer le fichier de configuration (google-services.json).
8. Accédez à Projet > Options... > Application > Liste des droits et définissez la valeur Recevoir les notifications push sur True.
9. Ajoutez un contrôle TMemo à votre fiche pour afficher les journaux d'événements Firebase. Renommez le contrôle mémo en MemoLog.
10. Accédez à Inspecteur d'objets et initialisez le service de notification push Firebase et la connexion à l'aide d'un événement OnCreate.
uses FMX.PushNotification.Android; procedure TFormMain.FormCreate(Sender: TObject); var PushService: TPushService; ServiceConnection: TPushServiceConnection; Notifications: TArray<TPushServiceNotification>; begin PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM); ServiceConnection := TPushServiceConnection.Create(PushService); ServiceConnection.Active := True; ServiceConnection.OnChange := OnServiceConnectionChange; ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; FDeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId]; MemoLog.Lines.Add('DeviceID: ' + FDeviceId); MemoLog.Lines.Add('Ready to receive!'); // Checks notification on startup, if application was launched fromcold start // by tapping on Notification in Notification Center Notifications := PushService.StartupNotifications; if Length(Notifications) > 0 then begin MemoLog.Lines.Add('-----------------------------------------'); MemoLog.Lines.Add('DataKey = ' + Notifications[0].DataKey); MemoLog.Lines.Add('Json = ' + Notifications[0].Json.ToString); MemoLog.Lines.Add('DataObject = ' + Notifications[0].DataObject.ToString); MemoLog.Lines.Add('-----------------------------------------'); end; end;
Cette instance de service permet de recenser un périphérique dans Firebase et de recevoir un token de périphérique unique qui sert de service pour le périphérique du destinataire du message push. Pour que ce code se compile, vous devez ajouter deux champs à la classe de votre fiche :
FDeviceId: string; FDeviceToken: string;
11. Implémentez OnServiceConnectionChange pour obtenir les modifications, c'est-à-dire le token du périphérique.
procedure TFormMain.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges); var PushService: TPushService; begin PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM); if TPushService.TChange.DeviceToken in PushChanges then begin FDeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; MemoLog.Lines.Add('Firebase Token: ' + FDeviceToken); Log.d('Firebase device token: token=' + FDeviceToken); end; if (TPushService.TChange.Status in PushChanges) and (PushService.Status = TPushService.TStatus.StartupError) then MemoLog.Lines.Add('Error: ' + PushService.StartupError); end;
12. Quand vous recevez le token du périphérique transmis par Firebase, implémentez OnReceiveNotificationEvent pour recevoir les données de charge utile push.
var MessageText: string; begin MemoLog.Lines.Add('-----------------------------------------'); MemoLog.Lines.Add('DataKey = ' + ServiceNotification.DataKey); MemoLog.Lines.Add('Json = ' + ServiceNotification.Json.ToString); MemoLog.Lines.Add('DataObject = ' + ServiceNotification.DataObject.ToString); MemoLog.Lines.Add('---------------------------------------'); end;
13. Déployez votre application FMX sur votre périphérique Android. Vous devez maintenant voir le token du périphérique dans le journal et constater que l'app a été automatiquement recensée dans FireBase. Pour envoyer un message push au périphérique, copiez le token Firebase à partir du mémo. Définissez l'appel de méthode Log.d dans l'extrait de code.
14. Accédez à https://console.firebase.google.com/ et sélectionnez le projet que vous venez de créer. Cliquez ensuite sur Agrandir> Cloud Messaging> Envoyer votre premier message dans le menu latéral.
15. Composez votre notification en saisissant un titre et un message, puis cliquez sur Envoyer un message test.
16. Saisissez le token du périphérique que vous avez précédemment copié et cliquez sur Tester. Le message est alors envoyé à votre périphérique test.