Prise en charge de Firebase Android

De RAD Studio
Aller à : navigation, rechercher

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).

Screenshot 1.PNG

Screenshot 2.PNG

2. Lorsqu'un message vous demande de configurer Google Analytics pour votre projet, sélectionnez Not right now, et cliquez sur Create project.

Screenshot 3.png

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.

Screenshot 4.png

4. Cliquez sur l'icône Android pour accéder à la page Add Firebase to your Android app.

Screenshot 5.png

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.

Screenshot 6.png

Modèle:Remarque

Attention: Le nom du projet FMX doit correspondre à celui recensé dans la console Firebase. Cela signifie que la valeur de package spécifiée dans Options du projet > Application > Version doit correspondre à la valeur du "package name" recensée pour les paramètres de projet dans la console Firebase. Considérons que le nom par défaut d'un projet Delphi est : com.embarcadero.$(ModuleName), alors qu'il est recommandé aux développeurs d'utiliser des noms de package basés sur leur propre domaine.

6. Téléchargez le fichier de configuration.

Screenshot 7.png

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).

Services.png

8. Accédez à Projet > Options... > Application > Liste des droits et définissez la valeur Recevoir les notifications push sur True.

EntitlementList.png

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.

ObjectInspector.png

 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;

Modèle:Remarque

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;

Modèle:Remarque

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.

DeviceP1.png

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​.

Screenshot 8.png

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.

Screenshot 9.png

Attention: La nouvelle version de Firebase utilise la version la plus récente de Google Play Services ; par conséquent, l'ancienne implémentation de MapView n'est pas prise en charge.

Modèle:Conseil

IconsP.png

Voir aussi

Options de l'application

Inspecteur d'objets

Menu Projet

FireMonkey