Olahpesan Firebase Cloud
Firebase Cloud Messaging (FCM) adalah layanan yang memfasilitasi olahpesan antara aplikasi seluler dan aplikasi server. Artikel ini memberikan gambaran umum tentang cara kerja FCM, dan menjelaskan cara mengonfigurasi Layanan Google sehingga aplikasi Anda dapat menggunakan FCM.
Topik ini memberikan gambaran umum tingkat tinggi tentang bagaimana Firebase Cloud Messaging merutekan pesan antara aplikasi Xamarin.Android Anda dan server aplikasi, dan menyediakan prosedur langkah demi langkah untuk memperoleh kredensial sehingga aplikasi Anda dapat menggunakan layanan FCM.
Gambaran Umum
Firebase Cloud Messaging (FCM) adalah layanan lintas platform yang menangani pengiriman, perutean, dan antrean pesan antara aplikasi server dan aplikasi klien seluler. FCM adalah penerus Google Cloud Messaging (GCM), dan dibangun di Google Play Services.
Seperti yang diilustrasikan dalam diagram berikut, FCM bertindak sebagai perantara antara pengirim pesan dan klien. Aplikasi klien adalah aplikasi berkemampuan FCM yang berjalan di perangkat. Server aplikasi (disediakan oleh Anda atau perusahaan Anda) adalah server berkemampuan FCM yang berkomunikasi dengan aplikasi klien Anda melalui FCM. Tidak seperti GCM, FCM memungkinkan Anda mengirim pesan ke aplikasi klien secara langsung melalui GUI Firebase Console Notifications:
Dengan menggunakan FCM, server aplikasi dapat mengirim pesan ke satu perangkat, ke sekelompok perangkat, atau ke sejumlah perangkat yang berlangganan topik. Aplikasi klien dapat menggunakan FCM untuk berlangganan pesan hilir dari server aplikasi (misalnya, untuk menerima pemberitahuan jarak jauh). Untuk informasi selengkapnya tentang berbagai jenis pesan Firebase, lihat Tentang Pesan FCM.
Firebase Cloud Messaging sedang beraksi
Saat pesan hilir dikirim ke aplikasi klien dari server aplikasi, server aplikasi mengirim pesan ke server koneksi FCM yang disediakan oleh Google; server koneksi FCM, pada gilirannya, meneruskan pesan ke perangkat yang menjalankan aplikasi klien. Pesan dapat dikirim melalui HTTP atau XMPP (Extensible Messaging and Presence Protocol). Karena aplikasi klien tidak selalu terhubung atau berjalan, server koneksi FCM mengantre dan menyimpan pesan, mengirimnya ke aplikasi klien saat terhubung kembali dan tersedia. Demikian pula, FCM akan mengantrekan pesan upstream dari aplikasi klien ke server aplikasi jika server aplikasi tidak tersedia. Untuk informasi selengkapnya tentang server koneksi FCM, lihat Tentang Firebase Cloud Messaging Server.
FCM menggunakan kredensial berikut untuk mengidentifikasi server aplikasi dan aplikasi klien, dan menggunakan kredensial ini untuk mengotorisasi transaksi pesan melalui FCM:
ID Pengirim – ID Pengirim adalah nilai numerik unik yang ditetapkan saat Anda membuat proyek Firebase. ID pengirim digunakan untuk mengidentifikasi setiap server aplikasi yang dapat mengirim pesan ke aplikasi klien. ID pengirim juga merupakan nomor proyek Anda; Anda mendapatkan ID pengirim dari Firebase Console saat mendaftarkan proyek Anda. Contoh ID Pengirim adalah
496915549731
.Kunci API – Kunci API memberikan akses server aplikasi ke layanan Firebase; FCM menggunakan kunci ini untuk mengautentikasi server aplikasi. Kredensial ini juga disebut sebagai Kunci Server atau Kunci API Web. Contoh Kunci API adalah
AJzbSyCTcpfRT1YRqbz-jIwp1h06YdauvewGDzk
.ID Aplikasi – Identitas aplikasi klien Anda (independen dari perangkat tertentu) yang mendaftar untuk menerima pesan dari FCM. Contoh ID Aplikasi adalah
1:415712510732:android:0e1eb7a661af2460
.Token Pendaftaran – Token Pendaftaran (juga disebut sebagai ID Instans) adalah identitas FCM aplikasi klien Anda pada perangkat tertentu. Token pendaftaran dihasilkan pada waktu proses – aplikasi Anda menerima token pendaftaran saat pertama kali mendaftar dengan FCM saat berjalan di perangkat. Token pendaftaran mengotorisasi instans aplikasi klien Anda (berjalan pada perangkat tertentu) untuk menerima pesan dari FCM. Contoh token pendaftaran adalah
fkBQTHxKKhs:AP91bHuEedxM4xFAUn0z ... JKZS
(string yang sangat panjang).
Menyiapkan Firebase Cloud Messaging (nanti dalam panduan ini) menyediakan instruksi terperinci untuk membuat proyek dan menghasilkan kredensial ini. Saat Anda membuat proyek baru di Firebase Console, file info masuk yang disebut google-services.json dibuat - tambahkan file ini ke proyek Xamarin.Android Anda seperti yang dijelaskan dalam Pemberitahuan Jarak Jauh dengan FCM.
Bagian berikut menjelaskan bagaimana kredensial ini digunakan saat aplikasi klien berkomunikasi dengan server aplikasi melalui FCM.
Pendaftaran dengan FCM
Aplikasi klien harus terlebih dahulu mendaftar dengan FCM sebelum olahpesan dapat berlangsung. Aplikasi klien harus menyelesaikan langkah-langkah pendaftaran yang ditunjukkan dalam diagram berikut:
Aplikasi klien menghubungi FCM untuk mendapatkan token pendaftaran, meneruskan ID pengirim, Kunci API, dan ID Aplikasi ke FCM.
FCM mengembalikan token pendaftaran ke aplikasi klien.
Aplikasi klien (opsional) meneruskan token pendaftaran ke server aplikasi.
Server aplikasi menyimpan token pendaftaran untuk komunikasi berikutnya dengan aplikasi klien. Server aplikasi dapat mengirim pengakuan kembali ke aplikasi klien untuk menunjukkan bahwa token pendaftaran diterima. Setelah jabat tangan ini terjadi, aplikasi klien dapat menerima pesan dari (atau mengirim pesan ke) server aplikasi. Aplikasi klien mungkin menerima token pendaftaran baru jika token lama disusupi (lihat Pemberitahuan Jarak Jauh dengan FCM untuk contoh bagaimana aplikasi menerima pembaruan token pendaftaran).
Ketika aplikasi klien tidak lagi ingin menerima pesan dari server aplikasi, aplikasi dapat mengirim permintaan ke server aplikasi untuk menghapus token pendaftaran. Jika aplikasi klien dihapus instalannya dari perangkat, FCM mendeteksi ini dan secara otomatis memberi tahu server aplikasi untuk menghapus token pendaftaran.
Olahpesan hilir
Diagram berikut menggambarkan bagaimana Firebase Cloud Messaging menyimpan dan meneruskan pesan hilir:
Saat server aplikasi mengirim pesan hilir ke aplikasi klien, server aplikasi menggunakan langkah-langkah berikut sebagaimana dijumlahkan dalam diagram di atas:
Server aplikasi mengirim pesan ke FCM.
Jika perangkat klien tidak tersedia, server FCM menyimpan pesan dalam antrean untuk transmisi nanti. Pesan disimpan di penyimpanan FCM selama maksimal 4 minggu (untuk informasi selengkapnya, lihat Mengatur masa pakai pesan).
Saat perangkat klien tersedia, FCM meneruskan pesan ke aplikasi klien di perangkat tersebut.
Aplikasi klien menerima pesan dari FCM, memprosesnya, dan menampilkannya kepada pengguna. Misalnya, jika pesan adalah pemberitahuan jarak jauh, pesan tersebut disajikan kepada pengguna di area pemberitahuan.
Dalam skenario olahpesan ini (di mana server aplikasi mengirim pesan ke satu aplikasi klien), panjang pesan dapat mencapai 4kB.
Untuk informasi terperinci tentang menerima pesan FCM hilir di Android, lihat Pemberitahuan Jarak Jauh dengan FCM.
Olahpesan topik
Olahpesan Topik memungkinkan server aplikasi mengirim pesan ke beberapa perangkat yang telah ikut serta dalam topik tertentu. Anda juga dapat membuat dan mengirim pesan topik melalui GUI Firebase Console Notifications. FCM menangani perutean dan pengiriman pesan topik kepada klien berlangganan. Fitur ini dapat digunakan untuk pesan seperti pemberitahuan cuaca, tanda kutip saham, dan berita utama.
Langkah-langkah berikut digunakan dalam pesan topik (setelah aplikasi klien mendapatkan token pendaftaran seperti yang dijelaskan sebelumnya):
Aplikasi klien berlangganan topik dengan mengirim pesan berlangganan ke FCM.
Server aplikasi mengirim pesan topik ke FCM untuk didistribusikan.
FCM meneruskan pesan topik ke klien yang telah berlangganan topik tersebut.
Untuk informasi selengkapnya tentang pesan topik Firebase, lihat Pesan Topik Google di Android.
Menyiapkan Firebase Cloud Messaging
Sebelum dapat menggunakan layanan FCM di aplikasi, Anda harus membuat proyek baru (atau mengimpor proyek yang ada) melalui Firebase Console. Gunakan langkah-langkah berikut untuk membuat proyek Firebase Cloud Messaging untuk aplikasi Anda:
Masuk ke Firebase Console dengan akun Google Anda (yaitu, alamat Gmail Anda) dan klik BUAT PROYEK BARU:
Jika Anda memiliki proyek yang sudah ada, klik impor proyek Google.
Dalam dialog Buat proyek, masukkan nama proyek Anda dan klik BUAT PROYEK. Dalam contoh berikut, proyek baru bernama XamarinFCM dibuat:
Di Gambaran Umum Firebase Console, klik Tambahkan Firebase ke aplikasi Android Anda:
Di layar berikutnya, masukkan nama paket aplikasi Anda. Dalam contoh ini, nama paketnya adalah com.xamarin.fcmexample. Nilai ini harus cocok dengan nama paket aplikasi Android Anda. Nama panggilan aplikasi juga dapat dimasukkan di bidang Nama panggilan aplikasi:
Jika aplikasi Anda menggunakan Tautan dinamis, Undangan, atau Google Auth, Anda juga harus memasukkan sertifikat penandatanganan debug. Untuk informasi selengkapnya tentang menemukan sertifikat penandatanganan Anda, lihat Menemukan Tanda Tangan MD5 atau SHA1 Keystore Anda. Dalam contoh ini, sertifikat penandatanganan dibiarkan kosong.
Klik TAMBAHKAN APLIKASI:
Kunci API Server dan ID Klien dibuat secara otomatis untuk aplikasi. Informasi ini dipaketkan dalam file google-services.json yang diunduh secara otomatis saat Anda mengklik TAMBAHKAN APLIKASI. Pastikan untuk menyimpan file ini di tempat yang aman.
Untuk contoh terperinci tentang cara menambahkan google-services.json ke proyek aplikasi untuk menerima pesan pemberitahuan push FCM di Android, lihat Pemberitahuan Jarak Jauh dengan FCM.
Untuk pembacaan lebih lanjut
Firebase Cloud Messaging Google memberikan gambaran umum tentang kemampuan utama Firebase Cloud Messaging, penjelasan tentang cara kerjanya, dan instruksi penyiapan.
Permintaan Kirim Build App Server Google menjelaskan cara mengirim pesan dengan server aplikasi Anda.
RFC 6120 dan RFC 6121 menjelaskan dan menentukan Extensible Messaging and Presence Protocol (XMPP).
Tentang Pesan FCM menjelaskan berbagai jenis pesan yang dapat dikirim dengan Firebase Cloud Messaging.
Ringkasan
Artikel ini memberikan gambaran umum tentang Firebase Cloud Messaging (FCM). Ini menjelaskan berbagai kredensial yang digunakan untuk mengidentifikasi dan mengotorisasi otorisasi olahpesan antara server aplikasi dan aplikasi klien. Ini mengilustrasikan skenario pendaftaran dan olahpesan hilir, dan merinci langkah-langkah untuk mendaftarkan aplikasi Anda dengan FCM untuk menggunakan layanan FCM.