Bagikan melalui


Migrasi Google Firebase Cloud Messaging menggunakan REST API dan portal Azure

Artikel ini menjelaskan kemampuan inti untuk integrasi Azure Notification Hubs dengan Firebase Cloud Messaging (FCM) v1. Sebagai pengingat, Google berhenti mendukung HTTP warisan FCM pada 20 Juni 2024, sehingga Anda harus memigrasikan aplikasi dan payload pemberitahuan ke format baru.

Penting

Mulai Juni 2024, API warisan FCM tidak lagi didukung dan dihentikan. Untuk menghindari gangguan dalam layanan pemberitahuan push, Anda harus bermigrasi ke protokol FCM v1.

Konsep untuk FCM v1

  • Jenis platform baru didukung, yang disebut FCM v1.
  • API, kredensial, pendaftaran, dan penginstalan baru digunakan untuk FCM v1.

Catatan

Platform FCM yang ada disebut sebagai warisan FCM dalam artikel ini.

Langkah migrasi

API warisan Firebase Cloud Messaging (FCM) tidak digunakan lagi pada Juli 2024. Anda dapat mulai bermigrasi dari protokol HTTP warisan ke FCM v1. Bagian ini menjelaskan langkah-langkah untuk bermigrasi dari warisan FCM ke FCM v1 menggunakan Notification Hubs REST API.

REST API

Bagian berikut menjelaskan cara melakukan migrasi menggunakan REST API.

Langkah 1: tambahkan kredensial FCM v1 ke hub

Langkah pertama adalah menambahkan kredensial melalui portal Azure, operasi hub bidang manajemen, atau operasi hub bidang data.

Membuat file JSON akun layanan Google

  1. Di konsol Firebase, pilih proyek Anda dan buka Pengaturan proyek.

  2. Pilih tab Akun layanan , buat akun layanan, dan buat kunci privat dari akun layanan Google Anda.

  3. Pilih Buat kunci privat baru untuk menghasilkan file JSON. Unduh dan buka file. Ganti nilai untuk project_id, private_key, dan client_email, karena diperlukan untuk pembaruan kredensial hub Azure Notification Hubs.

    Cuplikan layar pengaturan proyek konsol Firebase.

    ATAU

    Jika Anda ingin membuat akun layanan dengan izin akses yang disesuaikan, Anda dapat membuat akun layanan melalui > Akun Layanan IAM & Admin. Buka halaman secara langsung dengan mengklik Kelola izin akun layanan. Anda dapat membuat akun layanan yang memiliki salah satu peran berikut:

    • Admin Firebase (roles/firebase.admin)
    • Firebase Grow Admin (roles/firebase.growthAdmin)
    • Agen Layanan Administrator Firebase Admin SDK (roles/firebase.sdkAdminServiceAgent)
    • Firebase SDK Provisioning Service Agent (roles/firebase.sdkProvisioningServiceAgent)

    Cuplikan layar memperlihatkan pengaturan akun layanan IAM.

Opsi 1: memperbarui kredensial FcmV1 melalui portal Microsoft Azure

Buka hub pemberitahuan Anda di portal Azure, dan pilih Pengaturan > Google (FCM v1). Dapatkan nilai Kunci Privat, ID Proyek, dan Email Klien dari file JSON akun layanan yang diperoleh dari bagian sebelumnya, dan simpan untuk digunakan nanti.

Cuplikan layar memperlihatkan portal Azure opsi kredensial Firebase.

Opsi 2: memperbarui kredensial FcmV1 melalui operasi hub sarana manajemen

Lihat deskripsi NotificationHub FcmV1Credential.

  • Gunakan versi API: 2023-10-01 Pratinjau

  • FcmV1CredentialProperties:

    Nama Tipe
    clientEmail benang
    privateKey benang
    projectId benang

Opsi 3: memperbarui kredensial FcmV1 melalui operasi hub sarana data

Lihat Membuat hub pemberitahuan dan Memperbarui hub pemberitahuan.

  • Menggunakan versi API: 2015-01
  • Pastikan untuk menempatkan FcmV1Credential setelah GcmCredential, karena urutannya penting.

Misalnya, berikut ini adalah isi permintaan:

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

Langkah 2: mengelola pendaftaran dan penginstalan

Untuk skenario pengiriman langsung, lanjutkan langsung ke langkah 3. Jika Anda menggunakan salah satu Azure SDK, lihat artikel tentang SDK.

Opsi 1: buat pendaftaran FCM v1 atau perbarui pendaftaran GCM ke FCM v1

Jika Anda memiliki pendaftaran GCM yang ada, perbarui pendaftaran ke FcmV1Registration. Lihat Membuat atau memperbarui pendaftaran. Jika Anda tidak memiliki GcmRegistration yang sudah ada, buat pendaftaran baru sebagai FcmV1Registration. Lihat Membuat pendaftaran. Isi permintaan pendaftaran akan muncul seperti dalam contoh berikut:

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

Opsi 2: buat penginstalan FCM V1 atau perbarui penginstalan GCM ke FCM v1

Lihat Membuat atau menimpa penginstalan dan setel platform menjadi FCMV1.

Langkah 3: Mengirim pemberitahuan push

Opsi 1: pengiriman debug

Gunakan prosedur ini untuk menguji pemberitahuan sebelum opsi 2, 3, atau 4. Lihat Notification Hubs - Debug Send.

Catatan

Gunakan versi API: 2023-10-01-pratinjau.

Pada header:

Header permintaan Nilai
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format Atur ke fcmV1 atau template
Servicebusnotification-Tags Pengidentifikasi tag tunggal Anda

Uji payload dengan struktur berikut melalui pengiriman debug. Perhatikan bahwa FcmV1 memperkenalkan perubahan signifikan dalam struktur payload pesan JSON:

  1. Seluruh payload dipindahkan di bawah objek pesan.
  2. Opsi khusus Android dipindahkan ke objek Android dan time_to_live sekarang ttl dengan nilai string.
  3. Bidang data sekarang hanya mengizinkan pemetaan string-ke-string datar.
  4. Untuk informasi selengkapnya, lihat referensi FCM.

Atau, Anda dapat melakukan pengiriman pengujian (pengiriman debug) melalui portal Azure:

Cuplikan layar memperlihatkan halaman pengiriman pengujian portal Azure.

Opsi 2: kirim langsung

Lakukan pengiriman langsung. Di header permintaan, atur ServiceBusNotification-Format ke fcmV1.

Opsi 3: Pemberitahuan asli FcmV1 (kirim audiens)

Lakukan pengiriman pemberitahuan asli menggunakan FcmV1. Lihat Mengirim pemberitahuan asli Google Cloud Messaging (GCM). Di header permintaan, atur ServiceBusNotification-Format ke fcmV1. Misalnya, dalam isi permintaan:

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

Opsi 4: pemberitahuan templat

Anda dapat menguji pengiriman templat dengan isi permintaan baru mengikuti struktur payload JSON baru. Tidak ada perubahan lain yang perlu dilakukan. Lihat Mengirim pemberitahuan templat.

Langkah berikutnya

Migrasi Firebase Cloud Messaging menggunakan Azure SDK