Firebase-Android-Unterstützung

Aus RAD Studio
Wechseln zu: Navigation, Suche

Firebase-Android-Unterstützung

RAD Studio 10.3 Release 2 unterstützt Firebase Android. Führen Sie die folgenden Schritte aus, um Firebase Android für Ihre Anwendung zu aktivieren:

1. Wechseln Sie zu https://console.firebase.google.com/, um ein Projekt zu erstellen.

2. Registrieren Sie Ihre FMX-Android-Anwendung in der Firebase-Konsole.

Vorlage:Achtung

3. Laden Sie die Konfigurationsdatei (google-services.json) herunter.

4. Wählen Sie in der IDE Projekt > Optionen... > Anwendung > Dienste und klicken Sie auf Importieren, um die Konfigurationsdatei (google-services.json) zu importieren.

Services.png

5. Wählen Sie Projekt > Optionen... > Anwendung > Berechtigungsliste und legen Sie Push-Benachrichtigungen empfangen auf True fest.

EntitlementList.png

6. Fügen Sie Ihrem Formular ein TMemo-Steuerelement hinzu, um die Firebase-Ereignisprotokolle anzuzeigen. Benennen Sie das Memo-Steuerelement in MemoLog um.

7. Initialisieren Sie im Objektinspektor mit einem OnCreate-Ereignis den Firebase-Push-Benachrichtigungsdienst und die Verbindung.

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

Vorlage:Hinweis

Mit dieser Dienstinstanz wird ein Gerät bei Firebase registriert und es erhält ein eindeutiges Geräte-Token, das als Gerätedienst für den Empfänger der Push-Meldung verwendet wird. Damit dieser Code compiliert werden kann, müssen Sie Ihrer Formularklasse zwei Felder hinzufügen:

 FDeviceId: string;
 FDeviceToken: string;

8. Implementieren Sie ​OnServiceConnectionChange, um Änderungen abzurufen, d. h. das Geräte-Token.

 procedure TFormMain.OnServiceConnectionChange(Sender: TObject;
 PushChanges: TPushService.TChanges);
 var
   PushService: TPushService;
 begin
   PushService :=
 TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
   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;

9. Wenn Sie von Firebase das Geräte-Token erhalten, implementieren Sie OnReceiveNotificationEvent, um Push-Daten zu empfangen.

 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;

Vorlage:Hinweis

10. Stellen Sie Ihre FMX-Anwendung auf Ihrem Android-Gerät bereit. Im Protokoll sollte jetzt Folgendes angezeigt werden: das Geräte-Token und dass die App automatisch bei Firebase registriert wurde. Kopieren Sie das Firebase-Token aus dem Memo-Steuerelement, um eine Push-Meldung an das Gerät zu senden.

DeviceP1.png

11. Wechseln Sie zu https://console.firebase.google.com/ und wählen Sie das zuvor erstellte Projekt aus. Klicken Sie anschließend im Seitenmenü auf Grow> Cloud Messaging> Send your first message.

12. Stellen Sie Ihre Benachrichtigung zusammen, indem Sie einen Titel und eine Meldung eingeben, und klicken Sie anschließend auf Send test message​.

13. Geben Sie das Geräte-Token ein, das Sie zuvor kopiert haben, und klicken Sie auf ​Test​. Damit wird die Meldung an Ihr Testgerät übertragen.

Vorlage:Achtung

Vorlage:Tipp

IconsP.png

Siehe auch

Anwendungsoptionen

Objektinspektor

Menü Projekt

FireMonkey