Pesan push multicast pertama Anda menggunakan topik FCM

1. Perkenalan

Sasaran

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

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

Ikhtisar Topik

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

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

Topik harus digunakan untuk konten yang tersedia untuk umum. Misalnya, pesan tentang update cuaca. Jika Anda ingin mengirim pesan sensitif pengguna, gunakan Firebase Admin SDK untuk mengirim pesan multicast ke beberapa perangkat .

Multicasting berbasis topik dioptimalkan untuk throughput.

Apa yang akan Anda pelajari

  • Cara berlangganan (dan berhenti berlangganan) pengguna 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 dan melakukan langganan massal dan berhenti berlangganan.

Apa yang akan Anda bangun

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

Apa yang Anda perlukan

  • Browser pilihan Anda, seperti Chrome.
  • IntelliJ IDEA IDE untuk mengembangkan aplikasi Java.
    • Pastikan untuk ikut serta dalam dukungan Gradle saat menginstal.
  • Android Studio IDE 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 Anda dan disetel ke mode pengembang.
  • Akun Google untuk membuat dan mengelola proyek Firebase Anda.

2. Persiapan

Dapatkan kodenya

Kloning repositori GitHub dari baris perintah:

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

Kode contoh akan diklon ke direktori fcm-codelab .

cd fcm-codelab

Aplikasi awal untuk codelab ini ada di direktori messaging cabang fcm-topics-codelab . Lakukan langkah-langkah berikut untuk mencapai kode awal. Ini berisi dua direktori StockNewsApp dan StockNewsServer . Yang pertama berisi Aplikasi Android starter dan yang terakhir memiliki kode sisi server starter.

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

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

Buat proyek Firebase

  1. Di Firebase console , klik Tambahkan proyek , beri nama proyek Firebase StockNews dan klik lanjutkan. Catatan: Ingat ID Proyek untuk proyek Firebase Anda (atau klik ikon Edit untuk menetapkan ID Proyek pilihan Anda).

fc08f9a7808e4553.png

  1. Anda dapat melewati pengaktifan Google Analytics. Untuk keperluan codelab ini, Anda tidak memerlukannya. Klik Lanjutkan.
  2. Klik Buat proyek .

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

3. Konfigurasi aplikasi Firebase khusus platform

Sebagian besar perubahan kode yang diperlukan untuk mengaktifkan dukungan Firebase sudah dimasukkan ke dalam proyek yang sedang Anda kerjakan. Namun, untuk menambahkan dukungan pada platform seluler, Anda perlu:

  • Daftarkan platform yang diinginkan pada proyek Firebase
  • Unduh file konfigurasi khusus platform, dan tambahkan ke kode.

Untuk keperluan codelab ini, kami akan menambahkan aplikasi Android Firebase.

84e0b3199bef6d8a.png Konfigurasikan Android

  1. Di Firebase Console , pilih Setelan Proyek di bagian atas bilah navigasi kiri di roda Setelan, dan klik ikon Android di bawah Aplikasi Anda di laman Umum .

Anda akan melihat dialog berikut: 8254fc299e82f528.png

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

4. Bangun dan jalankan aplikasi Anda

Anda siap untuk mulai mengerjakan aplikasi Anda! Pertama, buat dan jalankan aplikasi.

Impor aplikasi awal

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

Setelah proyek dimuat, Anda mungkin juga melihat peringatan bahwa Git tidak melacak semua perubahan lokal Anda, Anda dapat mengklik " Abaikan " atau " X " di kanan atas. (Anda tidak akan mengembalikan perubahan apa pun ke repo Git.)

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

b574ea0089ee87c6.png

Harap perhatikan bahwa Android Studio mungkin memerlukan waktu beberapa detik untuk mengkompilasi proyek di latar belakang untuk pertama kalinya. Selama waktu ini Anda akan melihat spinner di bilah status di bagian bawah Android Studio:

4bc64eb3b99eb0ae.png

Kami menyarankan Anda menunggu hingga ini selesai sebelum melakukan perubahan kode. Ini akan memungkinkan Android Studio untuk menarik semua komponen yang diperlukan.

Selain itu, jika Anda mendapat pesan "Muat ulang agar perubahan bahasa diterapkan?" atau yang serupa, pilih "Ya".

Pengaturan Emulator

Jika Anda memerlukan bantuan dalam menyiapkan emulator Android, lihat artikel Menjalankan aplikasi Anda .

Pahami kode awal Aplikasi Android

  • Kode awal adalah Aplikasi Android ringan dengan fungsionalitas dan UI minimal.
  • Ketergantungan pada SDK perpesanan firebase telah ditambahkan ke file app/build.gradle .

f04ff8f48d186dff.png

  • Di AndroidManifest.xml , pengendali panggilan balik MESSAGING_EVENT telah ditambahkan.
    • Penangan ini, StockNewsMessagingService.java memperluas kelas FirebaseMessagingService yang menyediakan berbagai fungsionalitas terkait Firebase Cloud Messaging. Lihat dokumentasi FirebaseMessagingService untuk mempelajari lebih lanjut. b843c4d33ee53166.png
    88fad1960f4a6ff5.png
    • Fungsi onNewToken dipanggil ketika Token Pendaftaran FCM dibuat atau di-refresh. Lihat Memantau pembuatan token untuk informasi lebih lanjut.
    • Fungsi onMessageReceived dipanggil ketika pesan diterima dan aplikasi berada di latar depan. Saat ini, ia hanya mencatat pesan yang diterima.
  • Selain itu, di AndroidManifest.xml , kelas Application Android juga disediakan bernama StockNewsApplication . a4982a8731492dfc.pngccde692f7f68dc5a.png
    • Kelas ini akan menjadi kelas pertama yang dipakai saat Aplikasi dijalankan.
    • Dalam fungsi onCreate kelas StockNewsApplication , panggilan pembuatan Token Pendaftaran FCM ditambahkan. Ini akan menghasilkan Token Pendaftaran FCM yang valid dan mencatatnya.
  • MainActivity.java menambahkan RecyclerView yang menampilkan pilihan Kategori Saham.
  • SubscriptionAdapter.java mengimplementasikan RecyclerView.Adapter yang menampilkan layar pemilihan Kategori Saham.
    • Setiap Kategori Saham memiliki nama dan tombol langganan di sebelahnya.
    • Mengubah tombol alih akan membuat panggilan berlangganan/berhenti berlangganan topik FCM.
    • Anda akan menerapkan panggilan ini di bagian selanjutnya.
  • Kelas model/StockCategories.java berisi daftar semua Kategori Saham dan nama topik terkait.

b32663ec4e865a18.png

Jalankan aplikasi pemula

  1. Hubungkan perangkat Android Anda ke komputer atau mulai emulator.
  2. Di toolbar atas, pilih perangkat atau emulator Android target Anda dan tekan tombol jalankan.

5b27fc5b237e06b9.png

  1. UI Aplikasi akan terlihat seperti berikut:

ff5b1a1c53231c54.png

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

927eb66bc909f36b.png

5. Kirim Pesan Tes

Sekarang Anda siap mengirim pesan pengujian ke instance aplikasi yang telah Anda siapkan pada langkah terakhir.

Impor kode server awal

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

Tampilan proyek di bilah navigasi kiri Anda, akan terlihat seperti ini:

da20711f6527dff6.png

Catatan, mungkin diperlukan waktu beberapa menit bagi IntellIj IDEA untuk membangun proyek Anda, termasuk menarik dependensi yang diperlukan.

Pahami kode starter server

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

650fc733298588f8.png

  • Terakhir, ada dua kelas, yaitu:
    • FcmSender.java : Kelas ini berisi metode catatan berikut:
      • initFirebaseSDK : Menginisialisasi SDK firebase-admin.
      • sendMessageToFcmRegistrationToken : mengirim pesan ke Token Pendaftaran FCM.
      • sendMessageToFcmTopic : mengirim pesan ke topik FCM.
      • sendMessageToFcmTopicCondition : mengirim pesan ke kondisi topik FCM.
    • FcmSubscriptionManager.java : Kelas ini berisi metode yang memungkinkan pengelolaan langganan topik dari sisi server.
      • initFirebaseSDK : Menginisialisasi SDK firebase-admin.
      • subscribeFcmRegistrationTokensToTopic : berlangganan Token Pendaftaran FCM ke topik FCM.
      • unsubscribeFcmRegistrationTokensFromTopic : berhenti berlangganan Token Pendaftaran FCM dari topik FCM.

Menyiapkan kode server

  1. Pertama, kita perlu menyiapkan Akun Layanan Firebase yang memungkinkan firebase-admin SDK mengotorisasi panggilan ke API FCM.
    1. Buka Firebase Console, klik ikon roda gigi di samping Ikhtisar Proyek di bilah navigasi kiri, dan pilih Setelan proyek . 8c2108d4d7c915e9.png
    2. Di halaman pengaturan, pilih Akun layanan dan klik Buat akun layanan . 84b128cc5dac0a85.png
    3. Sekarang klik tombol Hasilkan kunci pribadi baru dan pengunduhan otomatis file kunci Anda akan dimulai.
    4. Ganti nama file kunci menjadi service-account.json dan salin ke 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.png
  2. Pada titik ini, kode server sudah siap. Jalankan Build -> Build Project dari bilah menu atas.

Mengirim Pesan Uji

  1. Di FcmSender.java temukan fungsi sendMessageToFcmRegistrationToken dan masukkan token pendaftaran FCM yang Anda salin dari bagian Jalankan aplikasi starter ke dalam bidang registrationToken .
  2. Di fungsi main , batalkan komentar pada fungsi sendMessageToFcmRegistrationToken dan klik jalankan untuk mengeksekusi kode.
    1. Amati bagaimana Token Pendaftaran FCM diatur ke dalam bidang Token pada objek message .
    2. Selanjutnya, perhatikan bagaimana kami menggunakan API send antarmuka FirebaseMessaging .

52e4a3ec3f816473.png

  1. Ini akan mengirimkan pesan ke instance aplikasi yang telah Anda siapkan pada langkah sebelumnya.
  2. Saat instance aplikasi berada di latar depan, Anda akan melihat konten pesan dicatat.

d3540ec1089f97dd.png

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

31203deca59c03fe.png

Luar biasa, Anda menggunakan Firebase Admin SDK untuk mengirim pesan ke instance aplikasi. Baca selengkapnya tentang penggunaan Firebase Admin SDK di server Anda .

6. Melaksanakan Topik Berlangganan/Berhenti Berlangganan

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

Ketika pengguna Aplikasi mengalihkan tombol untuk Kategori Saham tertentu, panggilan berlangganan atau berhenti berlangganan topik akan dilakukan.

Tinjau kode

  • Navigasikan ke kelas SubscriptionAdapter.java di kode Aplikasi Android dan temukan kelas RecyclerViewViewHolder .

6c0614199e684f6.png

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

Terapkan langganan topik

  1. Dalam metode subscribeToStockCategory , Anda akan mengimplementasikan panggilan ke API subscribeToTopic dari objek FirebaseMessaging . Kodenya mungkin 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();
          });
    }

Terapkan penghentian langganan topik

  1. Demikian pula, dalam kondisi lain, Anda akan mengimplementasikan panggilan ke unsubscribeFromTopic API. Sesuatu seperti 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 mencobanya

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

Langganan

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. Dalam kode server, masuk ke FcmSender.java dan temukan metode bernama sendMessageToFcmTopic .

56381dd1b40cde9c.png

  1. Di baris pertama, berikan Topik FCM yang ingin Anda kirimi pesan.
    • Ini adalah string dalam bentuk: /topics/<Topic Name> . Misalnya, /topics/Technology .
  2. Pada baris berikutnya buat objek message baru (mirip dengan yang ditentukan dalam fungsi sendMessageToFcmRegistrationToken ).
    • Perbedaannya adalah alih-alih mengatur bidang Token pada objek message , Anda akan mengatur bidang 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 di fungsi sendMessageToFcmRegistrationToken ).
FirebaseMessaging.getInstance().send(message);
  1. Terakhir, perbarui fungsi main dan aktifkan panggilan ke fungsi sendMessageToFcmTopic saja.

9a6aa08dd7c28898.png

Kirim pesan dan validasi tanda terima

  1. Sebelum mengirim pesan topik, pertama-tama pastikan bahwa instance aplikasi Anda berlangganan topik yang ingin Anda kirimi pesan.
    1. Hal ini dapat dilakukan dengan membalik tombol yang sesuai. Misalnya:
    4668247408377712.png
  2. Anda sekarang dapat mengirim pesan topik Anda dengan menjalankan fungsi main FcmSender.java .
  3. Seperti sebelumnya, Anda seharusnya dapat mengamati tanda terima pesan di aplikasi.
    1. Contoh aplikasi di latar depan
    c144721399f610fe.png
    1. Contoh aplikasi di latar belakang
    44efc7dfd57e8e9a.png
  4. Bonus: Coba berhenti berlangganan topik yang Anda kirimi dan kirim ulang pesan tersebut. Anda akan mengamati bahwa pesan tersebut tidak terkirim ke instance aplikasi.

8. Mengirimkan Pesan Kondisi Topik pertama Anda

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

Misalnya, di Aplikasi StockNews kami, pertimbangkan kemungkinan mengirim pesan ke sekelompok contoh aplikasi yang berlangganan topik Teknologi atau Otomotif. Kasus seperti itu bisa saja terjadi, misalnya jika ada peristiwa penting yang melibatkan Waymo.

Topik memungkinkan Anda mengekspresikan kombinasi Anda dalam bentuk ekspresi boolean menggunakan operator berikut

  • && : Logis DAN. Misalnya, 'Technology' in topics && 'Automotive' in topics - Hanya menargetkan instance aplikasi yang berlangganan Topik Teknologi dan Otomotif.
  • || : Logis ATAU. 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 Otomotif atau Energi.

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

Menerapkan integrasi sisi server untuk mengirimkan pesan kondisi topik

  1. Kembali ke kode server, masuk ke 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 mengaturnya menjadi: 'Technology' in topics && 'Automotive' in topics .
  2. Pada baris berikutnya, buat objek message baru (mirip dengan yang ditentukan dalam fungsi sendMessageToFcmTopic ).
    1. Bedanya, alih-alih mengatur bidang Topic pada objek, Anda akan mengatur bidang 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 di fungsi sendMessageToFcmTopic ).
FirebaseMessaging.getInstance().send(message);
  1. Terakhir, perbarui fungsi main dan aktifkan panggilan ke fungsi sendMessageToFcmTopicCondition saja.

db9588d40d2a0da6.png

Kirim pesan dan validasi tanda terima

  1. Sebelum mengirim pesan topik, pastikan terlebih dahulu bahwa instance aplikasi Anda memenuhi ketentuan topik yang ditentukan dengan berlangganan instance aplikasi ke topik Teknologi dan Otomotif.
  2. Anda sekarang dapat mengirim pesan topik Anda dengan menjalankan fungsi main FcmSender.java .
  3. Seperti sebelumnya, Anda seharusnya dapat mengamati tanda terima pesan di aplikasi.
    1. Contoh aplikasi di latar depan
    6f612ace15aa6515.png
    1. Contoh aplikasi di latar belakang
    78044a56ac2359cb.png
  4. Bonus: Anda sekarang dapat berhenti berlangganan topik Teknologi dan mengirim ulang pesan kondisi topik. Anda harus memperhatikan bahwa pesan tersebut tidak diterima oleh instance aplikasi.

9. Rekap

Mari kita rekap singkat apa yang telah Anda pelajari hingga saat ini.

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

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

c0dc20655d392690.gif

10. Kelola Langganan Topik dari Sisi Server

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

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

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

Menerapkan langganan sisi server Token Pendaftaran FCM ke topik FCM

  1. Dalam kode server, masuk ke kelas FcmSubscriptionManager.java . Temukan metode bernama subscribeFcmRegistrationTokensToTopic . Anda akan menerapkan panggilan ke subscribeToTopic API di sini.

5d5709e7b3cbcb04.png

  1. Mari berlangganan contoh aplikasi ke topik Energi. Untuk melakukannya, pertama-tama sediakan data untuk dua bidang berikut:
    1. registrationTokens : daftar string yang dipisahkan koma yang mewakili Token Pendaftaran FCM yang topik langganannya ingin Anda buat.
    2. topicName : nama topik untuk topik Energi, yaitu /topics/Energy .
  2. Dalam beberapa baris berikutnya implementasikan panggilan tersebut, seperti berikut:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic(
        registrationTokens, topicName);
  1. Anda dapat memeriksa TopicManagementResponse untuk mengetahui beberapa statistik hasil tingkat tinggi. Seperti mencetak jumlah langganan topik yang berhasil dibuat menggunakan getSuccessCount .
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
  1. Terakhir, pada fungsi main , aktifkan panggilan ke fungsi subscribeFcmRegistrationTokensToTopic saja.

Buat langganan dan kirim pesan topik

  1. Pada titik ini Anda siap membuat langganan topik dan mengirim pesan ke sana.
  2. Jalankan fungsi main kelas FcmSubscriptionManager.java . Ini akan membuat langganan topik.
  3. Sekarang, siapkan kode untuk mengirim pesan. Mirip dengan sebelumnya,
    1. Di FcmSender.java , temukan fungsi sendMessageToFcmTopic .
    2. Setel topicName ke topik Energi, yaitu /topics/Energy .
    3. Buat objek Message dan targetkan ke topik menggunakan setTopic .
    4. Terakhir, perbarui metode main agar hanya mengaktifkan fungsi sendMessageToFcmTopic .
  4. Jalankan fungsi main FcmSender.java . Ini akan mengirimkan pesan ke instance aplikasi Anda dan Anda dapat mengamatinya di aplikasi Anda sebagai berikut.
    1. Contoh aplikasi di latar depan
    40ab6cf71e0e4116.png
    1. Contoh aplikasi di latar belakang
    8fba81037198209e.png

Menerapkan penghentian langganan Token Pendaftaran FCM di sisi server ke topik FCM

  1. Untuk berhenti berlangganan topik sisi server, gunakan API unsubscribeFromTopic ini. Anda akan menambahkan kode yang relevan ke fungsi unsubscribeFcmRegistrationTokensFromTopic kelas FcmSubscriptionManager.java .

8d9e8ea9d34016bd.png

  1. Menerapkan kode berhenti berlangganan sisi server dan memvalidasi efeknya dengan mengirimkan pesan topik, dibiarkan sebagai latihan untuk Anda.

11. Selamat

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

947def3eb33b1e4a.gif

Apa berikutnya?

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

Dokumen Referensi