Migratie van Google Firebase Cloud Messaging met behulp van Azure SDK's
Google zal de verouderde API van Firebase Cloud Messaging (FCM) tegen 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 Azure SDK's.
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 .
Vereisten
- Zorg ervoor dat Firebase Cloud Messaging API (V1) is ingeschakeld in de Firebase-projectinstelling onder Cloud Messaging.
- Zorg ervoor dat FCM-referenties zijn bijgewerkt. Volg stap 1 in de REST API-handleiding.
Android-SDK
Werk de SDK-versie bij naar
2.0.0
het build.gradle-bestand van uw toepassing. Voorbeeld:// This is not a complete build.gradle file; it only highlights the portions you need to update. dependencies { // Ensure the following line is updated in your app/library's "dependencies" section. implementation 'com.microsoft.azure:notification-hubs-android-sdk:2.0.0' // optionally, use the fcm optimized SKU instead: // implementation 'com.microsoft.azure:notification-hubs-android-sdk-fcm:2.0.0' }
Werk de nettoladingsjabloon bij. Als u geen sjablonen gebruikt, kunt u deze stap overslaan.
Zie de FCM REST-verwijzing voor de FCM v1-nettoladingstructuur. Zie De nettolading van verzendaanvragen bijwerken voor informatie over het migreren van de verouderde FCM-nettolading naar de FCM v1-nettolading.
Als u bijvoorbeeld registraties gebruikt:
NotificationHub hub = new NotificationHub(BuildConfig.hubName, BuildConfig.hubListenConnectionString, context); String template = "{\"message\":{\"android\":{\"data\":{\"message\":\"{'Notification Hub test notification: ' + $(myTextProp)}\"}}}}"; hub.registerTemplate(token, "template-name", template);
Als u installaties gebruikt:
InstallationTemplate testTemplate = new InstallationTemplate(); testTemplate.setBody("{\"message\":{\"android\":{\"data\":{\"message\":\"{'Notification Hub test notification: ' + $(myTextProp)}\"}}}}"); NotificationHub.setTemplate("testTemplate", testTemplate);
Server-SDK's (gegevensvlak)
Werk het SDK-pakket bij naar de nieuwste versie (4.2.0):
GitHub-naam voor SDK Sdk-pakketnaam Versie azure-notificationhubs-dotnet Microsoft.Azure.NotificationHubs 4.2.0 azure-notificationhubs-java-backend com.windowsazure.Notification-Hubs-java-sdk 1.1.0 azure-sdk-for-js @azure/notification-hubs 1.1.0 Bijvoorbeeld in het .csproj-bestand :
<PackageReference Include="Microsoft.Azure.NotificationHubs" Version="4.2.0" />
Voeg de aan
FcmV1Credential
de Notification Hub toe. Deze stap is een eenmalige installatie. Tenzij u veel hubs hebt en deze stap wilt automatiseren, kunt u de REST API of Azure Portal gebruiken om de FCM v1-referenties toe te voegen:// Create new notification hub with FCM v1 credentials var hub = new NotificationHubDescription("hubname"); hub.FcmV1Credential = new FcmV1Credential("private-key", "project-id", "client-email"); hub = await namespaceManager.CreateNotificationHubAsync(hub); // Update existing notification hub with FCM v1 credentials var hub = await namespaceManager.GetNotificationHubAsync("hubname", CancellationToken.None); hub.FcmV1Credential = new FcmV1Credential("private-key", "project-id", "client-email"); hub = await namespaceManager.UpdateNotificationHubAsync(hub, CancellationToken.None);
// Create new notification hub with FCM V1 credentials NamespaceManager namespaceManager = new NamespaceManager(namespaceConnectionString); NotificationHubDescription hub = new NotificationHubDescription("hubname"); hub.setFcmV1Credential(new FcmV1Credential("private-key", "project-id", "client-email")); hub = namespaceManager.createNotificationHub(hub); // Updating existing Notification Hub with FCM V1 Credentials NotificationHubDescription hub = namespaceManager.getNotificationHub("hubname"); hub.setFcmV1Credential(new FcmV1Credential("private-key", "project-id", "client-email")); hub = namespaceManager.updateNotificationHub(hub);
Registraties en installaties beheren. Voor registraties gebruikt
FcmV1RegistrationDescription
u om FCM v1-apparaten te registreren. Voorbeeld:// Create new Registration var deviceToken = "device-token"; var tags = new HashSet<string> { "tag1", "tag2" }; FcmV1RegistrationDescription registration = await hub. CreateFcmV1NativeRegistrationAsync(deviceToken, tags);
Gebruik voor Java
FcmV1Registration
om FCMv1-apparaten te registreren:// Create new registration NotificationHub client = new NotificationHub(connectionString, hubName); FcmV1Registration registration = client.createRegistration(new FcmV1Registration("fcm-device-token"));
Gebruik
createFcmV1RegistrationDescription
voor JavaScript om FCMv1-apparaten te registreren:// Create FCM V1 registration const context = createClientContext(connectionString, hubName); const registration = createFcmV1RegistrationDescription({ fcmV1RegistrationId: "device-token", }); const registrationResponse = await createRegistration(context, registration);
Voor installaties kunt
NotificationPlatform.FcmV1
u het platform gebruiken metInstallation
of gebruikenFcmV1Installation
om FCM v1-installaties te maken:// Create new installation var installation = new Installation { InstallationId = "installation-id", PushChannel = "device-token", Platform = NotificationPlatform.FcmV1 }; await hubClient.CreateOrUpdateInstallationAsync(installation); // Alternatively, you can use the FcmV1Installation class directly var installation = new FcmV1Installation("installation-id", "device-token"); await hubClient.CreateOrUpdateInstallationAsync(installation);
Gebruik
NotificationPlatform.FcmV1
voor Java als het platform:// Create new installation NotificationHub client = new NotificationHub(connectionString, hubName); client.createOrUpdateInstallation(new Installation("installation-id", NotificationPlatform.FcmV1, "device-token"));
Gebruik
createFcmV1Installation
voor JavaScript om een FCMv1-installatie te maken:// Create FCM V1 installation const context = createClientContext(connectionString, hubName); const installation = createFcmV1Installation({ installationId: "installation-id", pushChannel: "device-token", }); const result = await createOrUpdateInstallation(context, installation);
Let op de volgende overwegingen:
- Als de apparaatregistratie plaatsvindt in de client-app, werkt u de client-app eerst bij om u te registreren onder het FCMv1-platform.
- Als de apparaatregistratie op de server plaatsvindt, kunt u alle registraties/installaties ophalen en bijwerken naar FCMv1 op de server.
Verzend de melding naar FCMv1. Gebruik
FcmV1Notification
deze opdracht wanneer u meldingen verzendt die zijn gericht op FCMv1. Voorbeeld:// Send FCM v1 notification var jsonBody = "{\"message\":{\"android\":{\"data\":{\"message\":\"Notification Hub test notification\"}}}}"; var n = new FcmV1Notification(jsonBody); NotificationOutcome outcome = await hub.SendNotificationAsync(n, "tag");
// Send FCM V1 Notification NotificationHub client = new NotificationHub(connectionString, hubName); NotificationOutcome outcome = client.sendNotification(new FcmV1Notification("{\"message\":{\"android\":{\"data\":{\"message\":\"Notification Hub test notification\"}}}}"));
// Send FCM V1 Notification const context = createClientContext(connectionString, hubName); const messageBody = `{ "message": { "android": { "data": { "message": "Notification Hub test notification" } } } }`; const notification = createFcmV1Notification({ body: messageBody, }); const result = await sendNotification(context, notification);