Migracja usługi Google Firebase Cloud Messaging przy użyciu zestawów SDK platformy Azure
Firma Google wycofa starszy interfejs API Firebase Cloud Messaging (FCM) do lipca 2024 r. Migrację ze starszego protokołu HTTP do usługi FCM w wersji 1 można rozpocząć 1 marca 2024 r. Migrację należy ukończyć do czerwca 2024 r. W tej sekcji opisano kroki migracji ze starszej wersji usługi FCM do usługi FCM w wersji 1 przy użyciu zestawów SDK platformy Azure.
Ważne
Od czerwca 2024 r. starsze interfejsy API usługi FCM nie będą już obsługiwane i zostaną wycofane. Aby uniknąć zakłóceń w usłudze powiadomień wypychanych, należy przeprowadzić migrację do protokołu FCM v1 tak szybko, jak to możliwe.
Wymagania wstępne
- Upewnij się, że interfejs API usługi Firebase Cloud Messaging (V1) jest włączony w ustawieniu projektu Firebase w obszarze Cloud Messaging.
- Upewnij się, że poświadczenia usługi FCM są aktualizowane. Wykonaj krok 1 w przewodniku po interfejsie API REST.
Android SDK
Zaktualizuj wersję zestawu SDK do
2.0.0
w pliku build.gradle aplikacji. Na przykład:// 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' }
Zaktualizuj szablon ładunku. Jeśli nie używasz szablonów, możesz pominąć ten krok.
Zapoznaj się z dokumentacją REST usługi FCM dla struktury ładunku usługi FCM w wersji 1. Aby uzyskać informacje na temat migracji ze starszego ładunku usługi FCM do ładunku fcM w wersji 1, zobacz Aktualizowanie ładunku żądań wysyłania.
Jeśli na przykład używasz rejestracji:
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);
Jeśli używasz instalacji:
InstallationTemplate testTemplate = new InstallationTemplate(); testTemplate.setBody("{\"message\":{\"android\":{\"data\":{\"message\":\"{'Notification Hub test notification: ' + $(myTextProp)}\"}}}}"); NotificationHub.setTemplate("testTemplate", testTemplate);
Zestawy SDK serwera (płaszczyzna danych)
Zaktualizuj pakiet zestawu SDK do najnowszej wersji (4.2.0):
Nazwa usługi GitHub zestawu SDK Nazwa pakietu zestawu SDK Wersja 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 Na przykład w pliku csproj :
<PackageReference Include="Microsoft.Azure.NotificationHubs" Version="4.2.0" />
Dodaj element
FcmV1Credential
do centrum powiadomień. Ten krok jest jednorazową konfiguracją. Jeśli nie masz wielu centrów i chcesz zautomatyzować ten krok, możesz użyć interfejsu API REST lub witryny Azure Portal, aby dodać poświadczenia usługi FCM w wersji 1:// 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);
Zarządzanie rejestracjami i instalacjami. W przypadku rejestracji użyj polecenia
FcmV1RegistrationDescription
, aby zarejestrować urządzenia FCM w wersji 1. Na przykład:// Create new Registration var deviceToken = "device-token"; var tags = new HashSet<string> { "tag1", "tag2" }; FcmV1RegistrationDescription registration = await hub. CreateFcmV1NativeRegistrationAsync(deviceToken, tags);
W przypadku języka Java użyj polecenia
FcmV1Registration
, aby zarejestrować urządzenia FCMv1:// Create new registration NotificationHub client = new NotificationHub(connectionString, hubName); FcmV1Registration registration = client.createRegistration(new FcmV1Registration("fcm-device-token"));
W przypadku języka JavaScript użyj polecenia
createFcmV1RegistrationDescription
, aby zarejestrować urządzenia FCMv1:// Create FCM V1 registration const context = createClientContext(connectionString, hubName); const registration = createFcmV1RegistrationDescription({ fcmV1RegistrationId: "device-token", }); const registrationResponse = await createRegistration(context, registration);
W przypadku instalacji użyj jako
NotificationPlatform.FcmV1
platformy zInstallation
programem lub użyj poleceniaFcmV1Installation
, aby utworzyć instalacje usługi FCM w wersji 1:// 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);
W przypadku języka Java użyj jako
NotificationPlatform.FcmV1
platformy:// Create new installation NotificationHub client = new NotificationHub(connectionString, hubName); client.createOrUpdateInstallation(new Installation("installation-id", NotificationPlatform.FcmV1, "device-token"));
W przypadku języka JavaScript użyj polecenia
createFcmV1Installation
, aby utworzyć instalację fcMv1:// Create FCM V1 installation const context = createClientContext(connectionString, hubName); const installation = createFcmV1Installation({ installationId: "installation-id", pushChannel: "device-token", }); const result = await createOrUpdateInstallation(context, installation);
Zwróć uwagę na następujące zagadnienia:
- Jeśli rejestracja urządzenia odbywa się w aplikacji klienckiej, najpierw zaktualizuj aplikację kliencka, aby zarejestrować się na platformie FCMv1.
- Jeśli rejestracja urządzenia odbywa się na serwerze, możesz pobrać wszystkie rejestracje/instalacje i zaktualizować je do serwera FCMv1.
Wyślij powiadomienie do usługi FCMv1. Użyj
FcmV1Notification
polecenia podczas wysyłania powiadomień, które są przeznaczone dla maszyny wirtualnej FCMv1. Na przykład:// 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);
Następne kroki
Migracja usługi Firebase Cloud Messaging przy użyciu interfejsu API REST