Google Firebase Cloud Messaging-Migration mithilfe der REST-API und des Azure-Portals
In diesem Artikel wird die Kernfunktionen für die Integration von Azure Notification Hubs in Firebase Cloud Messaging (FCM) v1 beschrieben. Zur Erinnerung: Google wird die Unterstützung von FCM Legacy HTTP am 20. Juni 2024 beenden, sodass Sie Ihre Anwendungen und Benachrichtigungsnutzdaten vorher in das neue Format migrieren müssen. Alle Methoden des Onboardings werden bis zum 1. März 2024 für die Migration bereit sein.
Wichtig
Ab Juni 2024 werden FCM-Legacy-APIs nicht mehr unterstützt und eingestellt. Um Unterbrechungen in Ihrem Pushbenachrichtigungsdienst zu vermeiden, müssen Sie so schnell wie möglich zum FCM v1-Protokoll migrieren.
Konzepte für FCM v1
- Ein neuer Plattformtyp mit dem Namen FCM v1 wird unterstützt.
- Neue APIs, Anmeldeinformationen, Registrierungen und Installationen werden für FCM v1 verwendet.
Hinweis
Die vorhandene FCM-Plattform wird in diesem Artikel als FCM Legacy bezeichnet.
Schritte bei der Migration
Die Legacy-API für Firebase Cloud Messaging (FCM) wird im Juli 2024 eingestellt. Sie können am 1. März 2024 mit der Migration vom Legacy HTTP-Protokoll zu FCM v1 beginnen. Sie müssen die Migration bis Juni 2024 abschließen. In diesem Abschnitt werden die Schritte zum Migrieren von FCM-Legacy zu FCM v1 mithilfe der REST-API von Notification Hubs beschrieben.
REST-API
Im folgenden Abschnitt wird beschrieben, wie Sie die Migration mithilfe der REST-API durchführen.
Schritt 1: Hinzufügen von FCM v1-Anmeldeinformationen zum Hub
Der erste Schritt besteht darin, Anmeldeinformationen über das Azure-Portal, einen Hub-Vorgang auf Verwaltungsebene oder einen Hub-Vorgang auf Datenebene hinzuzufügen.
Erstellen einer JSON-Datei für das Google-Dienstkonto.
Wählen Sie in der Firebase-Konsole Ihr Projekt aus, und wechseln Sie zu Projekteinstellungen.
Wählen Sie die Registerkarte Servicekonten, erstellen Sie ein Dienstkonto, und generieren Sie einen privaten Schlüssel aus Ihrem Google-Dienstkonto.
Wählen Sie Neuen privaten Schlüssel generieren aus, um eine JSON-Datei zu generieren. Laden Sie die Textdatei herunter und öffnen Sie sie. Ersetzen Sie die Werte für
project_id
,private_key
undclient_email
, da diese für Updates der Azure Notification Hubs-Hub-Anmeldeinformationen erforderlich sind.ODER
Wenn Sie ein Dienstkonto mit angepasster Zugriffsberechtigung erstellen möchten, können Sie über die Seite IAM & Admin > Dienstkonten ein Dienstkonto erstellen. Wechseln Sie direkt zur Seite, indem Sie auf Dienstkontoberechtigungen verwalten klicken. Sie können ein Dienstkonto erstellen, das über eine der folgenden Rollen verfügt:
- Firebase-Administrator (rollen/firebase.admin)
- Firebase Grow Admin (roles/firebase.growthAdmin)
- Firebase Admin SDK Administrator Service Agent (roles/firebase.sdkAdminServiceAgent)
- Firebase SDK Provisioning Service Agent (roles/firebase.sdkProvisioningServiceAgent)
Option 1: Aktualisieren von FcmV1-Anmeldeinformationen über das Azure-Portal
Wechseln Sie zum Benachrichtigungshub im Azure-Portal, und wählen Sie Einstellungen > Google (FCM v1) aus. Rufen Sie die Werte für Privater Schlüssel, Projekt-ID und Client-E-Mail aus der JSON-Datei des Dienstkontos ab, die im vorherigen Abschnitt abgerufen wurde, und speichern Sie sie zur späteren Verwendung.
Option 2: Aktualisieren der FcmV1-Anmeldeinformationen über den Hub-Vorgang der Verwaltungsebene
Weitere Informationen finden Sie unter Beschreibung eines NotificationHub FcmV1Credential..
Verwenden Sie die API-Version: 2023-10-01-preview
FcmV1CredentialProperties:
Name type clientEmail
Zeichenfolge privateKey
Zeichenfolge projectId
Zeichenfolge
Option 3: Aktualisieren der FcmV1-Anmeldeinformationen über den Hub-Vorgang der Datenebene
Siehe Erstellen eines Notification Hubs und Aktualisieren eines Notification Hubs.
- Verwenden Sie die API-Version: 2015-01
- Stellen Sie sicher, dass FcmV1Credential hinter GcmCredential platziert ist, da die Reihenfolge wichtig ist.
Es folgt ein Beispiel für den Anforderungstext:
<NotificationHubDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance'
xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'>
<ApnsCredential>
<Properties>
<Property>
<Name>Endpoint</Name>
<Value>{_apnsCredential.Endpoint}</Value>
</Property>
<Property>
<Name>AppId</Name>
<Value>{_apnsCredential.AppId}</Value>
</Property>
<Property>
<Name>AppName</Name>
<Value>{_apnsCredential.AppName}</Value>
</Property>
<Property>
<Name>KeyId</Name>
<Value>{_apnsCredential.KeyId}</Value>
</Property>
<Property>
<Name>Token</Name>
<Value>{_apnsCredential.Token}</Value>
</Property>
</Properties>
</ApnsCredential>
<WnsCredential>
<Properties>
<Property>
<Name>PackageSid</Name>
<Value>{_wnsCredential.PackageSid}</Value>
</Property>
<Property>
<Name>SecretKey</Name>
<Value>{_wnsCredential.SecretKey}</Value>
</Property>
</Properties>
</WnsCredential>
<GcmCredential>
<Properties>
<Property>
<Name>GoogleApiKey</Name>
<Value>{_gcmCredential.GoogleApiKey}</Value>
</Property>
</Properties>
</GcmCredential>
<FcmV1Credential>
<Properties>
<Property>
<Name>ProjectId</Name>
<Value>{_fcmV1Credential.ProjectId}</Value>
</Property>
<Property>
<Name>PrivateKey</Name>
<Value>{_fcmV1Credential.PrivateKey}</Value>
</Property>
<Property>
<Name>ClientEmail</Name>
<Value>{_fcmV1Credential.ClientEmail}</Value>
</Property>
</Properties>
</FcmV1Credential>
</NotificationHubDescription>
Schritt 2: Verwalten der Registrierung und Installation
Fahren Sie für Direct Send-Szenarien direkt mit Schritt 3 fort. Wenn Sie eines der Azure-SDKs verwenden, lesen Sie den SDK-Artikel.
Option 1: Erstellen der FCM v1-Registrierung oder Aktualisieren der GCM-Registrierung auf FCM v1
Wenn Sie über eine GCM-Registrierung verfügen, aktualisieren Sie die Registrierung auf FcmV1Registration. Siehe Erstellen oder Aktualisieren einer Registrierung. Wenn Sie nicht über eine GcmRegistrationverfügen, erstellen Sie eine neue Registrierung als FcmV1Registration. Siehe Erstellen einer Registrierung. Der Textkörper der Registrierungsanforderung sollte wie im folgenden Beispiel angezeigt werden:
// FcmV1Registration
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<FcmV1RegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>myTag, myOtherTag</Tags>
<FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
</FcmV1RegistrationDescription>
</content>
</entry>
// FcmV1TemplateRegistration
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<FcmV1TemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>myTag, myOtherTag</Tags>
<FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
<BodyTemplate><![CDATA[ {BodyTemplate}]]></BodyTemplate>
</FcmV1TemplateRegistrationDescription>
</content>
</entry>
Option 2: Erstellen einer FCM c1-Installation oder Aktualisieren der GCM-Installation auf FCM v1
Siehe Erstellen oder Überschreiben einer Installation, und legen Sie platform
auf FCMV1
fest.
Schritt 3: Senden einer Pushbenachrichtigung
Option 1: Debug Send
Verwenden Sie dieses Verfahren, um Benachrichtigungen vor Option 2, 3 oder 4 zu testen. Siehe Notification Hubs – Debug Send.
Hinweis
Verwenden Sie die API-Version: 2023-10-01-preview.
Im Header:
Anforderungsheader | Wert |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
Legen Sie fcmV1 oder template fest. |
Servicebusnotification-Tags |
{single tag identifier} |
Testen Sie eine Nutzlast mit der folgenden Struktur über Debug Send. Beachten Sie, dass FcmV1 eine erhebliche Änderung der Strukturierung der JSON-Nachrichtennutzlast einführt:
- Die gesamte Nutzlast wurde unter ein Nachrichtenobjekt verschoben.
- Android-spezifische Optionen wurden in das Android-Objekt verschoben, und
time_to_live
ist jetztttl
mit einem Zeichenfolgenwert. - Das Feld
data
ermöglicht jetzt nur eine flache Zeichenfolgen-zu-Zeichenfolge-Zuordnung. - Weitere Informationen finden Sie in der FCM-Referenz.
Alternativ können Sie über das Azure-Portal ein Test Send (Debug Send) durchführen:
Option 2: Direct Send.
Führen Sie ein Direct Send aus. Legen Sie im Anforderungsheader ServiceBusNotification-Format
auf fcmV1
fest.
Option 3: Native FcmV1-Benachrichtigung (Audience Send)
Führen Sie ein Senden der nativen FcmV1-Benachrichtigung aus. Siehe Senden einer nativen Google Cloud Messaging (GCM)-Benachrichtigung. Legen Sie im Anforderungsheader ServiceBusNotification-Format
auf fcmV1
fest. Beispielsweise im Anforderungstext:
{
"message": {
"notification": {
"title": "Breaking News",
"body": "FcmV1 is ready."
},
"android": {
"data": {
"name": "wrench",
"mass": "1.3kg",
"count": "3"
}
}
}
}
Option 4: Vorlagenbenachrichtigung
Sie können das Senden von Vorlagen mit einem neuen Anforderungstext testen, der der neuen JSON-Nutzlaststruktur folgt. Es müssen keine weiteren Änderungen vorgenommen werden. Siehe Senden einer Vorlagenbenachrichtigung.