Menggunakan Firebase Cloud Messaging (FCM) dengan browser.gcm

Anda dapat mengirim dan menerima pesan ke pengguna akhir dengan browser.gcm. Karena dibangun di atas Firebase Cloud Messaging (FCM), layanan ini mengandalkan layanan eksternal yang perlu Anda siapkan. Cara ini akan memandu Anda melakukan semua langkah yang diperlukan agar berfungsi di ekstensi Anda.

Meskipun browser.gcm masih didukung, dibuat lebih dari satu dekade lalu sebelum standar Push. Secara umum, selalu merupakan praktik terbaik untuk menggunakan standar web, bukan API khusus ekstensi. Kecuali jika Anda memiliki kebutuhan khusus untuk menggunakan browser.gcm, sebaiknya gunakan Push.

Prasyarat

Untuk menggunakan browser.gcm, Anda harus menyiapkan akun Firebase.

Halaman beranda Firebase.com.
Halaman beranda Firebase.com

Setelah membuat akun, Anda harus membuka Firebase console, lalu memilih project yang ada untuk digunakan, atau membuat project baru untuk ekstensi Anda.

Screenshot listingan project di Firebase console.
Listingan project di Firebase console

Lanjutkan ke halaman setelan untuk Cloud Messaging.

Screenshot halaman setelan Firebase Cloud Messaging.
Halaman setelan Firebase Cloud Messaging

Jika Anda memiliki akun cloud messaging yang sudah ada di project ini, Anda harus menyalin ID Pengirim numerik yang tercantum.

Jika Anda belum mengaktifkan cloud messaging, Anda harus mengaktifkan Firebase Cloud Messaging API untuk project di dalam Google Cloud. Pada gambar berikut, Anda dapat melihat tempat adanya link langsung ke halaman ini di setelan Firebase.

Screenshot lokasi link untuk mengaktifkan Firebase Messaging API di Google Cloud.
Membuka link setelan Google Cloud di Firebase

Setelah diaktifkan, kembali ke halaman setelan untuk Cloud Messaging, dan salin ID Pengirim.

Mengonfigurasi browser.gcm

Setelah mendapatkan ID Pengirim dari Firebase, Anda dapat mengonfigurasi ekstensi untuk memproses pesan. Untuk memulai, pastikan Anda telah menambahkan izin gcm ke manifest.json ekstensi Anda

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

Anda kini memiliki akses ke browser.gcm API. Anda dapat mendaftar untuk mendengarkan pesan push dengan memanggil browser.gcm.register

Mendengarkan pesan

Setelah ekstensi mendaftarkan ID Pengirim Anda, Anda perlu menambahkan kode untuk menangani pesan masuk.

Firebase tanpa Firebase

Meskipun browser.gcm selalu melalui Firebase, Firebase dapat dikonfigurasi untuk bertindak sebagai proxy bagi vendor pesan push eksternal. Biasanya, vendor akan mencantumkan dukungan untuk Ekstensi Chrome secara eksplisit, tetapi vendor yang mendukung notifikasi push Legacy Firebase seharusnya berfungsi. Jika penyedia Anda mencantumkan dukungan untuk notifikasi push Legacy Firebase, cobalah. Jika Anda mengalami masalah, dukungan penyedia harus dapat menjelaskan batasan yang akan berlaku.

Di Saluran dan Topik

browser.gcm menggunakan Firebase Messaging API lama. Hal ini penting karena API lama tidak mendukung saluran pesan. Setiap pesan yang dikirim akan dikirim ke setiap klien. Jika ekstensi pengguna hanya tertarik pada subset pesan, Anda harus memfilter sendiri.

Meskipun Firebase dimulai sebagai akun gratis, Anda akan dikenai biaya setelah melampaui batas penggunaan tertentu. Jika Anda berencana mengirim pesan ke grup tertentu, maka pemfilteran sisi klien dapat berujung pada biaya yang lebih besar daripada yang diperlukan. Anda dapat mengatasi masalah ini dengan membuat beberapa project untuk mereplikasi setiap saluran (satu project dan satu ID Pengirim untuk setiap saluran). Ekstensi tertentu dapat mendaftar untuk beberapa ID Pengirim, hingga 100.

Atau, jika Anda memerlukan dukungan saluran, atau ingin menggunakan notifikasi push tanpa melalui Firebase, Anda dapat menggunakan Push API.