Pesan push multicast pertama Anda menggunakan topik FCM

1. Pengantar

Sasaran

Dalam codelab ini, Anda akan mempelajari cara menginstrumentasikan aplikasi multi-platform sehingga Anda dapat melakukan multicast pesan push ke berbagai subgrup instance aplikasi menggunakan topik FCM.

Setelah selesai, Anda akan dapat memanfaatkan infrastruktur FCM untuk mengelola subgrup ini serta pesan push multicast melalui subgrup.

Ringkasan Topik

Topik adalah cara yang didukung infrastruktur FCM untuk menjangkau subgrup instance aplikasi dengan pesan.

FCM menyediakan API untuk mengirim pesan serta mempertahankan langganan ke topik ini. Tindakan mengaitkan dan memisahkan instance aplikasi ke topik disebut berlangganan dan berhenti berlangganan

Topik harus digunakan untuk konten yang tersedia untuk publik. Misalnya, pesan tentang info cuaca terbaru. Jika Anda ingin mengirim pesan yang sensitif kepada pengguna, gunakan Firebase Admin SDK untuk melakukan beberapa transmisi pesan melalui beberapa perangkat.

Multicasting berbasis topik dioptimalkan untuk throughput.

Yang akan Anda pelajari

  • Cara membuat pengguna berlangganan (dan menghentikan langganan) ke topik dari aplikasi seluler.
  • Cara mengirim pesan push multicast menggunakan topik.
  • Cara mengirim pesan ke kombinasi topik menggunakan kondisi topik.
  • Cara mengelola langganan topik di sisi server serta melakukan langganan massal dan pembatalan langganan.

Hal yang akan Anda build

  • Aplikasi Android yang berlangganan/berhenti berlangganan topik dan menerima pesan saat dikirim ke topik.
  • Integrasi sisi server menggunakan Firebase Admin SDK, yang akan digunakan untuk mengirim pesan topik melalui FCM API.

Yang Anda butuhkan

  • Browser pilihan Anda, seperti Chrome.
  • IntelliJ IDEA IDE untuk mengembangkan aplikasi Java.
    • Pastikan untuk menyertakan dukungan untuk Gradle saat menginstal.
  • IDE Android Studio untuk mengembangkan aplikasi Android.
  • Perangkat untuk menjalankan aplikasi Android. Salah satu dari:
    • Emulator Android. (Memerlukan penyiapan di Android Studio).
    • Perangkat Android fisik yang terhubung ke komputer dan disetel ke mode developer.
  • Akun Google untuk membuat dan mengelola project Firebase Anda.

2. Mempersiapkan

Mendapatkan kode

Buat clone repositori GitHub dari command line:

git clone https://github.com/firebase/quickstart-android.git fcm-codelab

Kode contoh akan di-clone ke direktori fcm-codelab.

cd fcm-codelab

Aplikasi awal untuk codelab ini berada di direktori messaging dari cabang fcm-topics-codelab. Lakukan langkah-langkah berikut untuk membuka kode awal. Direktori ini berisi dua direktori StockNewsApp dan StockNewsServer. Library pertama berisi Aplikasi Android awal, sedangkan yang kedua memiliki kode sisi server awal.

git checkout fcm-topics-codelab
cd messaging/fcm-topics-codelab/starter

Versi lengkap codelab ini ditempatkan di direktori messaging/fcm-topics-codelab/completed.

Membuat project Firebase

  1. Di Firebase console, klik Add project, beri nama project Firebase dengan StockNews, lalu klik continue. Catatan: Ingat Project ID untuk project Firebase Anda (atau klik ikon Edit untuk menetapkan Project ID pilihan Anda).

fc08f9a7808e4553.png

  1. Anda dapat melewati pengaktifan Google Analytics. Untuk tujuan codelab ini, Anda tidak memerlukannya. Klik Lanjutkan.
  2. Klik Create project.

Selamat! Anda baru saja membuat project Firebase. Sekarang, Anda dapat mengklik nama project untuk masuk ke konsol.

3. Konfigurasi aplikasi Firebase khusus platform

Sebagian besar perubahan kode yang diperlukan untuk mengaktifkan dukungan Firebase sudah diperiksa di project yang sedang Anda kerjakan. Namun, guna menambahkan dukungan untuk platform seluler, Anda harus:

  • Daftarkan platform yang diinginkan di project Firebase
  • Download file konfigurasi khusus platform, lalu tambahkan ke kode.

Untuk tujuan codelab ini, kita akan menambahkan aplikasi Firebase Android.

84e0b3199bef6d8a.pngSMengonfigurasi Android

  1. Di Firebase Console, pilih Project Settings di bagian atas menu navigasi kiri di roda gigi Setelan, lalu klik ikon Android di bagian Your apps di halaman General.

Anda akan melihat dialog berikut : 8254fc299e82f528.pngS

  1. Nilai penting yang harus diberikan adalah Android package name. Tetapkan ke com.ticker.stocknews.
    1. Nama paket yang diberikan di sini harus sama dengan yang diberikan dalam AndroidManifest.xml kode StockNewsApp awal Anda. Jika Anda ingin mencari atau mengubahnya, ikuti langkah berikut:
      1. Di direktori StockNewsApp, buka file app/src/main/AndroidManifest.xml.
      2. Dalam elemen manifest, temukan nilai string atribut package. Nilai ini adalah nama paket Android.
  1. Di dialog Firebase, tempel nama paket yang disalin ke kolom Android package name.
  2. Anda tidak memerlukan Sertifikat penandatanganan debug SHA-1 untuk codelab ini, karena aplikasi ini tidak akan dirilis. Biarkan kosong.
  3. Klik Daftarkan Aplikasi.
  4. Melanjutkan di Firebase Console, ikuti petunjuk untuk mendownload file konfigurasi google-services.json.
  5. Anda dapat melewati langkah-langkah penyiapan yang tersisa, karena yang lainnya sudah dikonfigurasi di kode aplikasi awal. Aplikasi Anda akan tercantum di halaman utama Firebase Console.
  6. Salin file google-services.json (yang baru saja Anda download) ke direktori messaging/fcm-topics-codelab/starter/StockNewsApp/app.

4. Buat dan jalankan aplikasi Anda

Anda sudah siap untuk mulai mengerjakan aplikasi Anda. Pertama, bangun dan jalankan aplikasi.

Mengimpor aplikasi awal

Mulai Android Studio, dan impor messaging/fcm-topics-codelab/starter/StockNewsApp dari direktori kode awal.

Setelah project dimuat, Anda juga akan melihat pemberitahuan bahwa Git tidak melacak semua perubahan lokal. Anda dapat mengklik "Ignore" atau "X" di kanan atas. (Anda tidak akan mendorong perubahan apa pun kembali ke repositori Git.)

Di sudut kiri atas jendela project, Anda akan melihat gambar seperti gambar di bawah ini jika berada dalam tampilan Android. (Jika berada dalam tampilan Project, Anda harus memperluas project untuk melihat hal yang sama)

b574ea0089ee87c6.pngS

Perlu diketahui bahwa Android Studio mungkin memerlukan waktu beberapa detik untuk mengompilasi project di latar belakang untuk pertama kalinya. Selama durasi ini, Anda akan melihat indikator lingkaran berputar di status bar di bagian bawah Android Studio:

4bc64eb3b99eb0ae.pngS

Sebaiknya Anda menunggu hingga proses ini selesai sebelum memodifikasi kode. Ini akan memungkinkan Android Studio menarik semua komponen yang diperlukan.

Selain itu, jika Anda ditanya "Reload for language changes to take effect?" atau yang serupa, pilih "Yes".

Penyiapan Emulator

Jika Anda memerlukan bantuan untuk menyiapkan emulator Android, baca artikel Menjalankan aplikasi.

Memahami kode awal Aplikasi Android

  • Kode awal adalah Aplikasi Android ringan dengan fungsi dan UI minimal.
  • Dependensi untuk firebase-Messaging SDK sudah ditambahkan ke file app/build.gradle.

f04ff8f48d186dff.pngS

  • Di AndroidManifest.xml, handler callback MESSAGING_EVENT sudah ditambahkan.
    • Pengendali ini, StockNewsMessagingService.java memperluas class FirebaseMessagingService yang menyediakan berbagai fungsi terkait Firebase Cloud Messaging. Lihat dokumentasi FirebaseMessagingService untuk mempelajari lebih lanjut. b843c4d33ee53166.pngS
    88fad1960f4a6ff5.pngS
    • Fungsi onNewToken dipanggil saat Token Pendaftaran FCM dibuat atau dimuat ulang. Lihat Memantau pembuatan token untuk informasi selengkapnya.
    • Fungsi onMessageReceived dipanggil saat pesan diterima dan aplikasi berada di latar depan. Saat ini, layanan hanya mencatat pesan yang diterima.
  • Selain itu, di AndroidManifest.xml, class Application Android juga disediakan bernama StockNewsApplication. a4982a8731492dfc.pngSccde692f7f68dc5a.pngS
    • Class ini akan menjadi class pertama yang dibuat instance-nya saat Aplikasi dimulai.
    • Dalam fungsi onCreate class StockNewsApplication, panggilan pembuatan Token Pendaftaran FCM ditambahkan. Tindakan ini akan menghasilkan Token Pendaftaran FCM yang valid dan mencatatnya dalam log.
  • MainActivity.java menambahkan RecyclerView yang menampilkan pilihan Kategori Stok.
  • SubscriptionAdapter.java mengimplementasikan RecyclerView.Adapter yang menggambar layar pemilihan Kategori Stok.
    • Setiap Kategori Stok memiliki nama dan tombol langganan di sampingnya.
    • Mengubah tombol ini akan membuat panggilan langganan / berhenti berlangganan topik FCM.
    • Anda akan menerapkan panggilan ini di bagian selanjutnya.
  • Class model/StockCategories.java berisi daftar semua Kategori Stok dan nama topik yang terkait.

b32663ec4e865a18.pngS

Menjalankan aplikasi awal

  1. Hubungkan perangkat Android ke komputer atau mulai emulator.
  2. Di toolbar bagian atas, pilih emulator atau perangkat Android target, lalu tekan tombol run.

5b27fc5b237e06b9.pngS

  1. UI Aplikasi akan terlihat seperti berikut:

ff5b1a1c53231c54.pngS

  1. Aplikasi akan membuat Token Pendaftaran FCM dan mencatatnya dalam log. Namun, tidak ada yang akan berubah di UI Aplikasi.
    1. Salin dan simpan Token Pendaftaran FCM karena akan digunakan pada langkah berikutnya.

927eb66bc909f36b.pngS

5. Kirim Pesan Uji Coba

Sekarang Anda siap untuk mengirim pesan pengujian ke instance aplikasi yang telah disiapkan di langkah terakhir.

Mengimpor kode server awal

Mulai IntelliJ IDEA dan buka project messaging/fcm-topics-codelab/starter/StockNewsServer.

Tampilan project di menu navigasi sebelah kiri, akan terlihat seperti ini:

da20711f6527dff6.pngS

Perhatikan bahwa mungkin perlu waktu beberapa menit bagi IntellIj IDEA untuk membangun project Anda, termasuk menarik dependensi yang diperlukan.

Memahami kode awal server

  • Kode awal server adalah project Java berbasis Gradle.
  • File build.gradle sudah memiliki dependensi pada firebase-admin SDK yang ditambahkan ke dalamnya. SDK ini menyediakan akses ke berbagai fungsi pengiriman pesan FCM.

650fc733298588f8.png

  • Terakhir, ada dua class, yaitu:
    • FcmSender.java: Class ini berisi metode catatan berikut:
      • initFirebaseSDK: Melakukan inisialisasi firebase-admin SDK.
      • sendMessageToFcmRegistrationToken: mengirim pesan ke Token Pendaftaran FCM.
      • sendMessageToFcmTopic: mengirim pesan ke topik FCM.
      • sendMessageToFcmTopicCondition: mengirim pesan ke kondisi topik FCM.
    • FcmSubscriptionManager.java: Class ini berisi metode yang memungkinkan pengelolaan langganan topik dari sisi server.
      • initFirebaseSDK: Melakukan inisialisasi firebase-admin SDK.
      • subscribeFcmRegistrationTokensToTopic: berlanggananlah Token Pendaftaran FCM ke topik FCM.
      • unsubscribeFcmRegistrationTokensFromTopic: menghentikan langganan Token Pendaftaran FCM dari topik FCM.

Menyiapkan kode server

  1. Pertama, kita perlu menyiapkan Akun Layanan Firebase yang memungkinkan firebase-admin SDK untuk mengizinkan panggilan ke FCM API.
    1. Buka Firebase Console, klik ikon roda gigi di samping Project Overview di menu navigasi sebelah kiri, lalu pilih Project settings. 8c2108d4d7c915e9.pngS
    2. Di halaman setelan, pilih Service accounts, lalu klik Create service account. 84b128cc5dac0a85.png
    3. Sekarang klik tombol Buat kunci pribadi baru dan download otomatis file kunci Anda akan dimulai.
    4. Ganti nama file kunci menjadi service-account.json, lalu salin di folder messaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources.
    5. FcmSender.java dan FcmSubscriptionManager.java memuat file service-account.json dari classpath menggunakan kode berikut. 8dffbee658e0bdd.pngS
  2. Pada tahap ini, kode server sudah siap. Jalankan Build -> Build Project dari panel menu atas.

Mengirim Pesan Pengujian

  1. Di FcmSender.java, temukan fungsi sendMessageToFcmRegistrationToken dan masukkan token pendaftaran FCM yang Anda salin dari bagian Run the starter app ke kolom registrationToken.
  2. Dalam fungsi main, hanya hapus tanda komentar fungsi sendMessageToFcmRegistrationToken dan klik run untuk mengeksekusi kode.
    1. Amati bagaimana Token Pendaftaran FCM ditetapkan ke kolom Token dari objek message.
    2. Selain itu, perhatikan bagaimana kita menggunakan send API dari antarmuka FirebaseMessaging.

52e4a3ec3f816473.pngS

  1. Tindakan ini akan mengirimkan pesan ke instance aplikasi yang telah Anda siapkan di langkah sebelumnya.
  2. Saat instance aplikasi berada di latar depan, Anda akan melihat konten pesan dalam log.

d3540ec1089f97dd.pngS

  1. Dan saat instance Aplikasi berada di latar belakang, Anda akan mengamati pesan tersebut muncul di baki notifikasi.

31203deca59c03fe.pngS

Luar biasa, Anda telah menggunakan Firebase Admin SDK untuk mengirim pesan ke instance aplikasi. Baca lebih lanjut cara menggunakan Firebase Admin SDK di server Anda.

6. Menerapkan Langganan Topik / Menghentikan Langganan

Pada langkah ini, Anda akan menerapkan tindakan langganan dan berhenti berlangganan topik, pada tombol Kategori Stok di Aplikasi Android.

Saat pengguna Aplikasi mengalihkan tombol untuk Kategori Stok tertentu, panggilan langganan atau pembatalan langganan topik akan dilakukan.

Meninjau kode

  • Buka class SubscriptionAdapter.java di kode Aplikasi Android dan cari class RecyclerViewViewHolder.

6c0614199e684f6.pngS

  • Konstruktor class menyiapkan pemroses untuk tombol langganan menggunakan setOnCheckedChangeListener.
  • Bergantung pada tombol tombol, tindakan berlangganan dan berhenti berlangganan masing-masing dilakukan dengan memanggil metode subscribeToStockCategory dan unsubscribeFromStockCategory.
  • Metode setData dipanggil oleh onBindViewHolder Adaptor RecyclerView untuk mengikat ViewHolder dengan Kategori Stok yang sesuai.

Menerapkan langganan topik

  1. Dalam metode subscribeToStockCategory, Anda akan menerapkan panggilan ke API subscribeToTopic dari objek FirebaseMessaging. Kode akan terlihat seperti ini:
   void subscribeToStockCategory() {
      // Making call to FCM for subscribing to the topic for stockCategory
     FirebaseMessaging.getInstance().subscribeToTopic(stockCategory.getTopicName()).addOnSuccessListener(
          unused -> {
            // Subscribing action successful
            Log.i(TAG, "Subscribed to topic: " + stockCategory.getTopicName());
            Toast.makeText(itemView.getContext(), "Subscribed to " + stockCategory.getCategoryName(),
                Toast.LENGTH_SHORT).show();
          });
    }

Menerapkan penghentian langganan topik

  1. Demikian pula, dalam kondisi else, Anda akan mengimplementasikan panggilan ke unsubscribeFromTopic API. Sesuatu di sepanjang baris berikut:
void unsubscribeFromStockCategory() {
      // Making call to FCM for unsubscribing from the topic for stockCategory
      FirebaseMessaging.getInstance().unsubscribeFromTopic(stockCategory.getTopicName())
          .addOnSuccessListener(unused -> {
            // Unsubscribing action successful
            Log.i(TAG, "Unsubscribed from topic: " + stockCategory.getTopicName());
            Toast.makeText(itemView.getContext(), "Unsubscribed from " + stockCategory.getCategoryName(),
                Toast.LENGTH_SHORT).show();
          });
    }

Mari kita coba

  1. Jalankan Aplikasi dan alihkan opsi Kategori Stok untuk menjalankan tindakan Berlangganan dan Berhenti Berlangganan. Token akan terlihat seperti ini:

Berlangganan

Berhenti berlangganan

7. Mengirim Pesan Topik pertama Anda

Pada langkah ini, Anda akan menerapkan kode sisi server untuk mengirim pesan topik FCM.

Menerapkan integrasi sisi server untuk mengirim pesan topik

  1. Di kode server, buka FcmSender.java dan temukan metode bernama sendMessageToFcmTopic.

56381dd1b40cde9c.pngS

  1. Di baris pertama, berikan Topik FCM yang ingin Anda kirimi pesan.
    • String ini berupa string bentuk: /topics/<Topic Name>. Contoh, /topics/Technology.
  2. Di baris berikutnya, buat objek message baru (serupa dengan objek yang ditentukan dalam fungsi sendMessageToFcmRegistrationToken).
    • Perbedaannya adalah, bukan menetapkan kolom Token dari objek message, tetapi Anda akan menetapkan kolom Topic.
Message message = Message.builder()
        .putData("FOOTECH", "$1000")
        .setNotification(
            Notification.builder()
                .setTitle("Investor confidence in Tech Stocks growing")
                .setBody("Foo Tech leading the way in stock growth for Tech sector.")
                .build())
        .setTopic(topicName)
        .build();
  1. Sekarang tambahkan panggilan ke instance FirebaseMessaging untuk mengirim pesan (sama dengan panggilan kirim yang dilakukan dalam fungsi sendMessageToFcmRegistrationToken).
FirebaseMessaging.getInstance().send(message);
  1. Terakhir, update fungsi main dan aktifkan panggilan hanya ke fungsi sendMessageToFcmTopic.

9a6aa08dd7c28898.pngS

Mengirim pesan dan memvalidasi tanda terima

  1. Sebelum mengirim pesan topik, pastikan terlebih dahulu bahwa instance aplikasi Anda berlangganan ke topik yang ingin Anda kirimi pesan.
    1. Tindakan ini dapat dilakukan dengan membalik tombol yang sesuai. Contoh:
    4668247408377712.png
  2. Sekarang Anda dapat mengirim pesan topik dengan menjalankan fungsi main dari FcmSender.java.
  3. Seperti sebelumnya, Anda harus dapat mengamati tanda terima pesan pada instance aplikasi.
    1. Instance aplikasi di latar depan
    c144721399f610fe.pngS
    1. Instance aplikasi di latar belakang
    44efc7dfd57e8e9a.pngS
  4. Bonus: Coba berhenti berlangganan topik yang Anda kirim dan kirim ulang pesan. Anda akan mengamati bahwa pesan tidak dikirim ke instance aplikasi.

8. Mengirim Pesan Kondisi Topik pertama Anda

Fitur kondisi topik memungkinkan Anda mengirim pesan ke kombinasi topik yang memungkinkan Anda memberikan definisi audiens yang lebih ekspresif.

Misalnya, di Aplikasi StockNews kami, pertimbangkan kemungkinan pengiriman pesan ke grup instance aplikasi yang berlangganan topik Teknologi atau Otomotif. Kasus tersebut dapat terjadi, misalnya, jika ada peristiwa penting yang melibatkan Waymo.

Topics memungkinkan Anda untuk mengekspresikan kombinasi dalam bentuk ekspresi boolean menggunakan operator berikut

  • && : Logika AND. Misalnya, 'Technology' in topics && 'Automotive' in topics - Hanya menargetkan instance aplikasi yang berlangganan Topics Teknologi dan Otomotif.
  • || : Logika OR. Misalnya, 'Technology' in topics || 'Automotive' in topics - Menargetkan instance aplikasi yang berlangganan topik Teknologi atau Otomotif.
  • () : Tanda kurung untuk pengelompokan. Misalnya, 'Technology' in topics && ('Automotive' in topics || 'Energy' in topics) - Hanya menargetkan instance aplikasi yang berlangganan topik Teknologi dan topik Otomotif atau Energi.

Baca selengkapnya tentang cara membuat permintaan kirim untuk menggunakan fungsi ini.

Menerapkan integrasi sisi server untuk mengirim pesan kondisi topik

  1. Kembali ke kode server, buka FcmSender.java dan temukan metode bernama sendMessageToFcmTopicCondition.

3719a86c274522cf.png

  1. Di baris pertama, untuk variabel topicCondition, berikan kondisi topik yang ingin Anda kirimi pesan. Anda dapat menetapkannya ke: 'Technology' in topics && 'Automotive' in topics.
  2. Di baris berikutnya, buat objek message baru (serupa dengan objek yang ditentukan dalam fungsi sendMessageToFcmTopic).
    1. Perbedaannya adalah, bukan menetapkan kolom Topic untuk objek, Anda akan menetapkan kolom Condition.
    Message message = Message.builder()
        .putData("FOOCAR", "$500")
        .setNotification(
            Notification.builder()
                .setTitle("Foo Car shows strong Q2 results")
                .setBody("Foo Car crosses 1B miles. Stocks rally.")
                .build())
        .setCondition(topicCondition)
        .build();
  1. Sekarang tambahkan panggilan ke instance FirebaseMessaging untuk mengirim pesan (sama dengan panggilan kirim yang dilakukan dalam fungsi sendMessageToFcmTopic).
FirebaseMessaging.getInstance().send(message);
  1. Terakhir, update fungsi main dan aktifkan panggilan hanya ke fungsi sendMessageToFcmTopicCondition.

db9588d40d2a0da6.pngS

Mengirim pesan dan memvalidasi tanda terima

  1. Sebelum mengirim pesan topik, pastikan terlebih dahulu bahwa instance aplikasi Anda memenuhi kondisi topik yang ditentukan dengan membuat instance aplikasi berlangganan topik Teknologi dan Otomotif.
  2. Sekarang Anda dapat mengirim pesan topik dengan menjalankan fungsi main dari FcmSender.java.
  3. Seperti sebelumnya, Anda seharusnya dapat mengamati tanda terima pesan pada instance aplikasi.
    1. Instance aplikasi di latar depan
    6f612ace15aa6515.pngS
    1. Instance aplikasi di latar belakang
    78044a56ac2359cb.pngS
  4. Bonus: Anda kini dapat berhenti berlangganan topik Teknologi dan mengirim ulang pesan kondisi topik. Anda harus mengamati bahwa pesan tidak diterima oleh instance aplikasi.

9. Rangkuman

Mari kita lakukan rekap cepat tentang apa yang telah Anda pelajari sampai saat ini.

  • Cara memulai langganan topik / berhenti berlangganan dari instance aplikasi.
  • Mengirim pesan ke topik dan memverifikasi tanda terima pada instance aplikasi berlangganan.
  • Mengirim pesan ke Kondisi topik dan memverifikasi tanda terima pada instance aplikasi yang memenuhi kondisi.

Di bagian berikutnya, Anda akan mempelajari cara membuat instance aplikasi berlangganan / berhenti berlangganan ke topik tanpa perlu membuat instance panggilan dari sisi klien.

c0dc20655d392690.gif

10. Mengelola Langganan Topik dari Sisi Server

Hingga saat ini, dalam codelab ini, semua panggilan langganan topik dan pembatalan langganan dimulai dari instance aplikasi.

Namun, dalam beberapa kasus penggunaan, Anda mungkin ingin mengelola langganan topik dari Sisi Server. Misalnya, Anda mungkin ingin membuat subgrup basis pengguna yang ada berlangganan topik baru tanpa menunggu peluncuran aplikasi.

Di bagian ini, Anda akan mempelajari cara menggunakan Firebase Admin SDK untuk berlangganan dan menghentikan langganan batch Token Pendaftaran FCM ke suatu topik dengan melakukan panggilan dari sisi server.

Menerapkan langganan Token Pendaftaran FCM sisi server ke topik FCM

  1. Di kode server, buka class FcmSubscriptionManager.java. Temukan metode bernama subscribeFcmRegistrationTokensToTopic. Anda akan mengimplementasikan panggilan ke subscribeToTopic API di sini.

5d5709e7b3cbcb04.pngS

  1. Mari kita berlangganankan instance aplikasi ke topik Energi. Untuk melakukannya, pertama-tama berikan data untuk dua kolom berikut:
    1. registrationTokens: daftar string yang dipisahkan koma yang mewakili Token Pendaftaran FCM yang langganan topiknya ingin Anda buat.
    2. topicName: nama topik untuk topik Energi, yaitu /topics/Energy.
  2. Dalam beberapa baris berikutnya, terapkan panggilan tersebut melalui baris berikut:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic(
        registrationTokens, topicName);
  1. Anda dapat memeriksa TopicManagementResponse untuk melihat beberapa statistik hasil tingkat tinggi. Misalnya mencetak jumlah langganan topik yang berhasil dibuat menggunakan getSuccessCount.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
  1. Terakhir, dalam fungsi main, aktifkan panggilan hanya ke fungsi subscribeFcmRegistrationTokensToTopic.

Membuat langganan dan mengirim pesan topik

  1. Pada tahap ini, Anda siap untuk membuat langganan topik dan mengirim pesan ke langganan topik.
  2. Jalankan fungsi main dari class FcmSubscriptionManager.java. Tindakan ini akan membuat langganan topik.
  3. Sekarang, siapkan kode untuk mengirim pesan. Serupa dengan sebelumnya,
    1. Di FcmSender.java, temukan fungsi sendMessageToFcmTopic.
    2. Setel topicName ke topik Energy, yaitu, /topics/Energy.
    3. Buat objek Message dan targetkan ke topik menggunakan setTopic.
    4. Terakhir, update metode main untuk hanya mengaktifkan fungsi sendMessageToFcmTopic.
  4. Jalankan fungsi main dari FcmSender.java. Tindakan ini akan mengirimkan pesan ke instance aplikasi dan Anda dapat mengamatinya di aplikasi seperti berikut.
    1. Instance aplikasi di latar depan
    40ab6cf71e0e4116.pngS
    1. Instance aplikasi di latar belakang
    8fba81037198209e.png

Menerapkan penghentian langganan Token Pendaftaran FCM sisi server ke topik FCM

  1. Untuk pembatalan langganan topik sisi server, gunakan unsubscribeFromTopic API ini. Anda akan menambahkan kode yang relevan ke fungsi unsubscribeFcmRegistrationTokensFromTopic dari class FcmSubscriptionManager.java.

8d9e8ea9d34016bd.pngS

  1. Menerapkan kode pembatalan langganan sisi server dan memvalidasi efeknya dengan mengirim pesan topik, merupakan latihan untuk Anda.

11. Selamat

Selamat, Anda berhasil menggunakan topik FCM untuk mengirim pesan multicast ke subgrup instance aplikasi. Hal ini akan membantu menyederhanakan kemampuan Anda untuk menjangkau pengguna dengan konten yang relevan secara tepat waktu.

947def3eb33b1e4a.gif

Apa langkah selanjutnya?

Setelah menyelesaikan codelab, pertimbangkan untuk mencoba topik untuk platform lain menggunakan panduan berikut:

Dokumen Referensi