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. Besuchen Sie https://console.firebase.google.com/, klicken Sie auf Projekt erstellen und geben Sie einen Namen für Ihr Projekt ein, z. B. FirebaseApp.

Screenshot 1.PNG

Screenshot 2.PNG

2. Sie werden gefragt, ob Sie Google Analytics für Ihr Projekt aktivieren möchten. Deaktivieren Sie Google Analytics und klicken Sie auf Projekt erstellen.

Screenshot 3.png

3. Nach dem Erstellen des Projekts müssen Sie die FMX-Android-Anwendung registrieren.

Klicken Sie im linken Navigationsbereich auf das Zahnradsymbol und wählen Sie Projekteinstellungen aus.

Screenshot 4.png

4. Klicken Sie auf das Android-Symbol, um die Seite Firebase zu meiner Android-App hinzufügen zu öffnen.

Screenshot 5.png

5. Der Standardpaketname für eine FireMonkey-Anwendung lautet com.embarcadero.FirebaseApp, aber Sie sollten diesen Namen für Ihre eigenen Anwendungen in com.yourcompany.packagename ändern.

Screenshot 6.png

Hinweis: Für vorhandene Anwendungen, die zurzeit im Google Play Store verfügbar sind, müssen Sie den Paketnamen des Projekts hier hinzufügen, anstatt einen neuen Namen zuzuweisen. Klicken Sie auf App registrieren.
Achtung: Der FMX-Projektname muss mit dem in der Firebase-Konsole registrierten Projektnamen übereinstimmen. Das bedeutet, dass der Paketwert in der Info Projektoptionen > Anwendung > Version mit dem Wert von "Paketname" übereinstimmen muss, den Sie in den Einstellungen für das Projekt in der Firebase-Konsole registriert haben. Beachten Sie, dass der Standardname in einem Delphi-Projekt com.embarcadero.$(ModuleName) lautet, während es für Entwickler empfohlen wird, Paketnamen zu verwenden, die auf ihrer eigenen Domäne basieren.

6. Laden Sie die Konfigurationsdatei herunter.

Screenshot 7.png

Klicken Sie auf Weiter und überspringen Sie diesen Schritt.

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

Services.png

8. Wählen Sie Projekt > Optionen... > Anwendung > Berechtigungsliste aus und legen Sie Push-Benachrichtigungen empfangen auf true fest.

EntitlementList.png

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

10. 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;
Hinweis: Wenn Sie dieselbe Anwendung für andere Plattformen compilieren möchten, muss sich die Anweisung uses für Android-Push-Benachrichtigungen in einer IFDEF-Anweisung befinden.

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;

11. 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;

12. 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;
Hinweis: Der Titel und der Rumpf der Push-Benachrichtigung stehen nicht in DataObject zur Verfügung, wenn die Anwendung durch Tippen auf die Benachrichtigung in der Mitteilungszentrale aufgerufen wird (Kaltstart).

13. 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, um eine Push-Meldung an das Gerät zu senden, oder Sie können es alternativ aus dem ADB Logcat übernehmen. Siehe die Methode Log.d im Quelltextfragment.

DeviceP1.png

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

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

Screenshot 8.png

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

Screenshot 9.png

Achtung: Das neue Firebase verwendet die neueste Version von Google Play Services, daher wird die alte Implementierung von MapView nicht unterstützt.
Tipp: Wählen Sie Projekt > Optionen... > Anwendung > Symbole, um ein benutzerdefiniertes Symbol für Push-Benachrichtigungen und die Akzentfarbe anzugeben.

IconsP.png

Siehe auch

Anwendungsoptionen

Objektinspektor

Menü Projekt

FireMonkey