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
Selecteer uw project in de Firebase-console en ga naar Project-instellingen.
Selecteer het tabblad Serviceaccounts , maak een serviceaccount en genereer een persoonlijke sleutel van uw Google-serviceaccount.
Selecteer Nieuwe persoonlijke sleutel genereren om een JSON-bestand te genereren. Download het bestand en open het. Vervang de waarden voor
project_id
,private_key
enclient_email
, omdat deze vereist zijn voor azure Notification Hubs Hub-referentie-updates.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)
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.
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 platform
FCMV1
.
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:
- De hele nettolading is verplaatst onder een berichtobject.
- Android-specifieke opties zijn verplaatst naar het Android-object en
time_to_live
hebben nuttl
een tekenreekswaarde. - Het
data
veld staat nu alleen een platte tekenreeks-naar-tekenreekstoewijzing toe. - Zie de FCM-verwijzing voor meer informatie.
U kunt ook een test verzenden (foutopsporing verzenden) uitvoeren via Azure Portal:
Optie 2: Direct verzenden
Voer een directe verzendbewerking uit. Stel in de aanvraagheader in op ServiceBusNotification-Format
fcmV1
.
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-Format
fcmV1
. 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