Firebase-Android-Unterstützung
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.
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.
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.
4. Klicken Sie auf das Android-Symbol, um die Seite Firebase zu meiner Android-App hinzufügen zu öffnen.
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.
6. Laden Sie die Konfigurationsdatei herunter.
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.
8. Wählen Sie Projekt > Optionen... > Anwendung > Berechtigungsliste aus und legen Sie Push-Benachrichtigungen empfangen auf true fest.
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.
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;
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;
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.
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.
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.