Freigeben über


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.

  1. Wählen Sie in der Firebase-Konsole Ihr Projekt aus, und wechseln Sie zu Projekteinstellungen.

  2. Wählen Sie die Registerkarte Servicekonten, erstellen Sie ein Dienstkonto, und generieren Sie einen privaten Schlüssel aus Ihrem Google-Dienstkonto.

  3. 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 und client_email, da diese für Updates der Azure Notification Hubs-Hub-Anmeldeinformationen erforderlich sind.

    Screenshot der Projekteinstellungen der Firebase-Konsole.

    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)

    Screenshot der Einstellungen für das IAM-Dienstkonto.

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.

Screenshot der Optionen der Azure-Portal-Firebase-Anmeldeinformationen.

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:

  1. Die gesamte Nutzlast wurde unter ein Nachrichtenobjekt verschoben.
  2. Android-spezifische Optionen wurden in das Android-Objekt verschoben, und time_to_live ist jetzt ttl mit einem Zeichenfolgenwert.
  3. Das Feld data ermöglicht jetzt nur eine flache Zeichenfolgen-zu-Zeichenfolge-Zuordnung.
  4. Weitere Informationen finden Sie in der FCM-Referenz.

Alternativ können Sie über das Azure-Portal ein Test Send (Debug Send) durchführen:

Screenshot der Seite zum Senden von Azure-Portaltests.

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.

Nächste Schritte

Firebase Cloud Messaging-Migration mit Azure SDKs