Delen via


Migratie van Google Firebase Cloud Messaging met rest API en Azure Portal

In dit artikel worden de kernmogelijkheden beschreven voor de integratie van Azure Notification Hubs met Firebase Cloud Messaging (FCM) v1. Ter herinnering: Google stopt met het ondersteunen van verouderde FCM HTTP op 20 juni 2024. Daarom moet u uw toepassingen en nettoladingen voor meldingen migreren naar de nieuwe indeling voordat u dat doet. Alle methoden voor onboarding zijn gereed voor migratie op 1 maart 2024.

Belangrijk

Vanaf juni 2024 worden verouderde FCM-API's niet meer ondersteund en buiten gebruik gesteld. Om onderbrekingen in uw pushmeldingsservice te voorkomen, moet u zo snel mogelijk migreren naar het FCM v1-protocol .

Concepten voor FCM v1

  • Een nieuw platformtype wordt ondersteund, FCM v1 genoemd.
  • Nieuwe API's, referenties, registraties en installaties worden gebruikt voor FCM v1.

Notitie

Het bestaande FCM-platform wordt in dit artikel FCM verouderd genoemd.

Migratiestappen

De verouderde API van Firebase Cloud Messaging (FCM) wordt in juli 2024 afgeschaft. U kunt beginnen met migreren van het verouderde HTTP-protocol naar FCM v1 op 1 maart 2024. U moet de migratie uiterlijk juni 2024 voltooien. In deze sectie worden de stappen beschreven voor het migreren van FCM verouderd naar FCM v1 met behulp van de Rest API van Notification Hubs.

REST-API

In de volgende sectie wordt beschreven hoe u de migratie uitvoert met behulp van de REST API.

Stap 1: FCM v1-referenties toevoegen aan hub

De eerste stap bestaat uit het toevoegen van referenties via Azure Portal, een hub-bewerking op het beheervlak of de hubbewerking van het gegevensvlak.

JSON-bestand voor Google-serviceaccount maken

  1. Selecteer uw project in de Firebase-console en ga naar Project-instellingen.

  2. Selecteer het tabblad Serviceaccounts , maak een serviceaccount en genereer een persoonlijke sleutel van uw Google-serviceaccount.

  3. Selecteer Nieuwe persoonlijke sleutel genereren om een JSON-bestand te genereren. Download het bestand en open het. Vervang de waarden voor project_id, private_keyen client_email, omdat deze vereist zijn voor azure Notification Hubs Hub-referentie-updates.

    Schermopname van de projectinstellingen van de Firebase-console.

    OF

    Als u een serviceaccount wilt maken met aangepaste toegangsmachtigingen, kunt u een serviceaccount maken via de pagina IAM & Beheer > Serviceaccounts. Ga rechtstreeks naar de pagina door op Machtigingen voor serviceaccounts beheren te klikken. U kunt een serviceaccount maken met een van de volgende rollen:

    • Firebase Beheer (roles/firebase.admin)
    • Firebase Grow Beheer (roles/firebase.growth Beheer)
    • Firebase Beheer SDK Beheer istrator Service Agent (roles/firebase.sdk Beheer ServiceAgent)
    • Firebase SDK Provisioning Service Agent (roles/firebase.sdkProvisioningServiceAgent)

    Schermopname van de instellingen van het IAM-serviceaccount.

Optie 1: FcmV1-referenties bijwerken via Azure Portal

Ga naar uw Notification Hub in Azure Portal en selecteer Instellingen > Google (FCM v1). Haal de waarden voor persoonlijke sleutel, project-id en client-e-mail op uit het JSON-bestand van het serviceaccount dat u in de vorige sectie hebt verkregen en sla deze op voor later gebruik.

Schermopname van de opties voor Firebase-referenties in Azure Portal.

Optie 2: FcmV1-referenties bijwerken via de beheervlakhub-bewerking

Zie de beschrijving van een NotificationHub FcmV1Credential.

  • API-versie gebruiken: 2023-10-01-preview

  • FcmV1CredentialProperties:

    Name Type
    clientEmail tekenreeks
    privateKey tekenreeks
    projectId tekenreeks

Optie 3: FcmV1-referenties bijwerken via de data plane hub-bewerking

Zie Een Notification Hub maken en Een Notification Hub bijwerken.

  • API-versie gebruiken: 2015-01
  • Zorg ervoor dat u FcmV1Credential na GcmCredential plaatst, omdat de volgorde belangrijk is.

Het volgende is bijvoorbeeld de hoofdtekst van de aanvraag:

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

Stap 2: Registratie en installatie beheren

Voor scenario's voor direct verzenden gaat u rechtstreeks verder met stap 3. Als u een van de Azure SDK's gebruikt, raadpleegt u het artikel over SDK's.

Optie 1: FCM v1-registratie maken of GCM-registratie bijwerken naar FCM v1

Als u een bestaande GCM-registratie hebt, werkt u de registratie bij naar FcmV1Registration. Zie Een registratie maken of bijwerken. Als u geen bestaande GcmRegistration hebt, maakt u een nieuwe registratie als FcmV1Registration. Zie Een registratie maken. De hoofdtekst van de registratieaanvraag moet worden weergegeven zoals in het volgende voorbeeld:

// 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>

Optie 2: FCM c1-installatie maken of GCM-installatie bijwerken naar FCM v1

Zie Een installatie maken of overschrijven en instellen op platformFCMV1.

Stap 3: Een pushmelding verzenden

Optie 1: Foutopsporing voor verzenden

Gebruik deze procedure om meldingen te testen vóór optie 2, 3 of 4. Zie Notification Hubs - Foutopsporing verzenden.

Notitie

Api-versie gebruiken: 2023-10-01-preview.

In de koptekst:

Aanvraagheader Weergegeven als
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format Instellen op fcmV1 of template
Servicebusnotification-Tags {enkele tag-id}

Test een nettolading met de volgende structuur via foutopsporing verzenden. Houd er rekening mee dat FcmV1 een belangrijke wijziging introduceert in de structuur van de nettolading van het JSON-bericht:

  1. De hele nettolading is verplaatst onder een berichtobject.
  2. Android-specifieke opties zijn verplaatst naar het Android-object en time_to_live hebben nu ttl een tekenreekswaarde.
  3. Het data veld staat nu alleen een platte tekenreeks-naar-tekenreekstoewijzing toe.
  4. Zie de FCM-verwijzing voor meer informatie.

U kunt ook een test verzenden (foutopsporing verzenden) uitvoeren via Azure Portal:

Schermopname van de pagina test verzenden in Azure Portal.

Optie 2: Direct verzenden

Voer een directe verzendbewerking uit. Stel in de aanvraagheader in op ServiceBusNotification-FormatfcmV1.

Optie 3: systeemeigen melding van FcmV1 (verzenden via doelgroep)

Voer een systeemeigen melding voor FcmV1 uit. Zie Een systeemeigen melding voor Google Cloud Messaging (GCM) verzenden. Stel in de aanvraagheader in op ServiceBusNotification-FormatfcmV1. Bijvoorbeeld in de hoofdtekst van de aanvraag:

{ 
  "message": { 
    "notification": {  
        "title": "Breaking News",  
        "body": "FcmV1 is ready."  
        }, 
    "android": {  
        "data": {  
            "name": "wrench",  
            "mass": "1.3kg",  
            "count": "3"  
            }  
        } 
    } 
}

Optie 4: sjabloonmelding

U kunt sjabloon verzenden met een nieuwe aanvraagbody na de nieuwe JSON-nettoladingstructuur. Er hoeven geen andere wijzigingen te worden aangebracht. Zie Een sjabloonmelding verzenden.

Volgende stappen

Firebase Cloud Messaging-migratie met behulp van Azure SDK's