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 ke topik ini. Tindakan mengaitkan dan memisahkan instance aplikasi ke topik disebut masing-masing berlangganan dan berhenti berlangganan

Topik harus digunakan untuk konten yang tersedia untuk umum. Misalnya, pesan tentang pembaruan cuaca. Jika Anda ingin mengirim pesan sensitif pengguna, gunakan Firebase Admin SDK untuk multicasting pesan melalui 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 ketentuan 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.
  • Integrasi sisi server menggunakan Firebase Admin SDK, yang akan digunakan untuk mengirim pesan topik melalui FCM API.

Apa yang Anda butuhkan?

  • Peramban pilihan Anda, seperti Chrome.
  • IntelliJ IDEA IDE untuk mengembangkan aplikasi Java.
    • Pastikan untuk memilih dukungan untuk Gradle saat menginstal.
  • Android Studio IDE untuk mengembangkan aplikasi Android.
  • Perangkat untuk menjalankan aplikasi Android. Salah satu dari:
    • Emulator Androidnya. (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 sampel akan dikloning ke direktori fcm-codelab .

cd fcm-codelab

Aplikasi awal untuk codelab ini ada di direktori messaging cabang fcm-topics-codelab . Ambil langkah-langkah berikut untuk mencapai kode starter. 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 messaging/fcm-topics-codelab/completed .

Buat proyek Firebase

  1. Di konsol Firebase , klik Tambahkan proyek , beri nama proyek Firebase StockNews dan klik lanjutkan. Catatan: Ingat ID Proyek untuk proyek Firebase Anda (atau klik ikon Edit untuk menyetel 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 diperiksa ke dalam proyek yang sedang Anda kerjakan. Namun, untuk menambahkan dukungan untuk platform seluler, Anda perlu:

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

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

84e0b3199bef6d8a.png Konfigurasikan Android

  1. Di Firebase Console , pilih Pengaturan Proyek di bagian atas bilah navigasi kiri di roda Pengaturan, dan klik ikon Android di bawah Aplikasi Anda di halaman 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 dari kode StockNewsApp pemula 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, tempel nama paket yang disalin ke bidang 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 Daftar Aplikasi .
  4. Melanjutkan di Firebase Console, ikuti petunjuk untuk mengunduh file konfigurasi google-services.json .
  5. Anda dapat melewati langkah penyiapan yang tersisa, karena yang lainnya sudah dikonfigurasi dalam 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 messaging/fcm-topics-codelab/starter/StockNewsApp/app .

4. Bangun dan jalankan aplikasi Anda

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

Impor aplikasi pemula

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

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 mendorong perubahan apa pun kembali 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 beberapa detik untuk mengompilasi proyek di latar belakang untuk pertama kalinya. Selama waktu ini Anda akan melihat pemintal di bilah status di bagian bawah Android Studio:

4bc64eb3b99eb0ae.png

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

Selain itu, jika Anda mendapatkan prompt yang mengatakan "Muat ulang agar perubahan bahasa diterapkan?" atau yang serupa, pilih "Ya".

Pengaturan Emulator

Jika Anda memerlukan bantuan untuk menyiapkan emulator Android, lihat artikel Jalankan aplikasi Anda .

Pahami kode awal Aplikasi Android

  • Kode starter adalah Aplikasi Android ringan dengan fungsionalitas dan UI minimal.
  • Dependensi ke firebase-messaging SDK sudah ditambahkan ke file app/build.gradle .

f04ff8f48d186dff.png

  • Di AndroidManifest.xml , pengendali panggilan balik MESSAGING_EVENT sudah ditambahkan.
    • Handler 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 saat Token Pendaftaran FCM dibuat atau disegarkan. Lihat Memantau pembuatan token untuk informasi selengkapnya.
    • Fungsi onMessageReceived dipanggil saat pesan diterima dan aplikasi berada di latar depan. Saat ini, itu hanya mencatat pesan yang diterima.
  • Selain itu, di AndroidManifest.xml juga disediakan kelas Application Android bernama StockNewsApplication . a4982a8731492dfc.pngccde692f7f68dc5a.png
    • Kelas ini akan menjadi yang pertama 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 menggambar layar pemilihan Kategori Saham.
    • Setiap Kategori Saham memiliki nama dan sakelar langganan di sebelahnya.
    • Mengubah sakelar harus membuat panggilan berlangganan / berhenti berlangganan topik FCM.
    • Anda akan menerapkan panggilan ini di bagian yang akan datang.
  • Kelas model/StockCategories.java berisi daftar semua Kategori Saham dan nama topik yang terkait.

b32663ec4e865a18.png

Jalankan aplikasi pemula

  1. Hubungkan perangkat Android Anda ke komputer Anda atau mulai emulator.
  2. Di bilah alat 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 akan 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 untuk mengirim pesan pengujian ke instance aplikasi yang telah Anda siapkan di langkah terakhir.

Impor kode server pemula

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

Perhatikan, mungkin diperlukan 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

  • Akhirnya, ada dua kelas, yaitu:
    • FcmSender.java : Kelas ini berisi metode catatan berikut:
      • initFirebaseSDK : Menginisialisasi 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 : Kelas ini berisi metode yang memungkinkan pengelolaan langganan topik dari sisi server.
      • initFirebaseSDK : Menginisialisasi firebase-admin SDK.
      • 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 SDK admin firebase untuk mengotorisasi panggilan ke FCM API.
    1. Buka Firebase Console, klik ikon roda gigi di sebelah Ikhtisar Proyek di bilah navigasi kiri, dan pilih Pengaturan proyek . 8c2108d4d7c915e9.png
    2. Di halaman pengaturan, pilih Akun layanan dan klik Buat akun layanan . 84b128cc5dac0a85.png
    3. Sekarang klik tombol Generate new private key dan pengunduhan otomatis file kunci Anda akan dimulai.
    4. Ganti nama file kunci menjadi service-account.json dan salin di messaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources .
    5. Baik 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 Jalankan bagian aplikasi pemula ke dalam bidang registrationToken .
  2. Di fungsi main , batalkan komentar hanya pada fungsi sendMessageToFcmRegistrationToken dan klik jalankan untuk mengeksekusi kode.
    1. Amati bagaimana Token Pendaftaran FCM diatur ke dalam bidang Token dari objek message .
    2. Selanjutnya, perhatikan bagaimana kita telah menggunakan API send dari antarmuka FirebaseMessaging .

52e4a3ec3f816473.png

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

d3540ec1089f97dd.png

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

31203deca59c03fe.png

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

6. Terapkan Berlangganan / Berhenti Berlangganan Topik

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

Saat pengguna Aplikasi mengaktifkan sakelar untuk Kategori Saham tertentu, langganan topik atau panggilan berhenti berlangganan akan dilakukan.

Kode ulasan

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

6c0614199e684f6.png

  • Konstruktor kelas menyiapkan pendengar untuk sakelar langganan dengan menggunakan setOnCheckedChangeListener .
  • Bergantung pada sakelar sakelar, tindakan berlangganan dan berhenti berlangganan dilakukan dengan memanggil 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 subscribeToTopic API dari objek FirebaseMessaging . Kodenya bisa 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 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 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.

Terapkan 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. Di baris berikutnya buat objek message baru (mirip dengan yang didefinisikan dalam fungsi sendMessageToFcmRegistrationToken ).
    • Perbedaannya adalah alih-alih mengatur bidang Token dari 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 (identik dengan panggilan kirim yang dibuat dalam 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.
    1. Ini dapat dilakukan dengan membalik sakelar yang sesuai. Sebagai contoh:
    4668247408377712.png
  2. Anda sekarang dapat mengirim pesan topik Anda dengan menjalankan fungsi main FcmSender.java .
  3. Seperti sebelumnya, Anda harus dapat mengamati tanda terima pesan pada instance 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 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 mengirim pesan ke sekelompok instance aplikasi yang berlangganan topik Teknologi atau Otomotif. Kasus seperti itu dapat terjadi, misalnya, jika ada peristiwa penting yang melibatkan Waymo.

Topik memungkinkan Anda untuk 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 Teknologi dan topik Otomotif atau Energi.

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

Terapkan integrasi sisi server untuk mengirim 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 menyetelnya ke: 'Technology' in topics && 'Automotive' in topics .
  2. Di baris berikutnya, buat objek message baru (mirip dengan yang didefinisikan dalam fungsi sendMessageToFcmTopic ).
    1. Perbedaannya adalah alih-alih menyetel bidang Topic objek, Anda akan menyetel 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 (identik dengan panggilan kirim yang dibuat dalam 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, pertama-tama pastikan 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 harus dapat mengamati tanda terima pesan pada instance aplikasi.
    1. Contoh aplikasi di latar depan
    6f612ace15aa6515.png
    1. Contoh aplikasi di latar belakang
    78044a56ac2359cb.png
  4. Bonus: Anda sekarang dapat berhenti berlangganan dari topik Teknologi dan mengirim ulang pesan kondisi topik. Anda harus mengamati bahwa pesan tidak diterima oleh instance aplikasi.

9. Rekap

Mari kita lakukan rekap singkat tentang apa yang telah Anda pelajari hingga 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 topik Kondisi dan memverifikasi tanda terima pada instance aplikasi yang memenuhi ketentuan.

Di bagian berikutnya, Anda akan belajar tentang bagaimana Anda dapat 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, di codelab ini, semua panggilan topik dan panggilan 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 dari 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 sekumpulan Token Pendaftaran FCM ke suatu topik dengan melakukan panggilan dari sisi server.

Terapkan langganan sisi server dari 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 instance aplikasi ke topik Energi. Untuk melakukannya, pertama-tama berikan data untuk dua bidang berikut:
    1. registrationTokens : daftar string yang dipisahkan koma yang mewakili Token Pendaftaran FCM yang ingin Anda jadikan langganan topik.
    2. topicName : nama topik untuk topik Energi, yaitu /topics/Energy .
  2. Dalam beberapa baris berikutnya terapkan panggilan, di sepanjang baris ini:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic(
        registrationTokens, topicName);
  1. Anda dapat memeriksa TopicManagementResponse untuk 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, dalam fungsi main aktifkan panggilan ke fungsi subscribeFcmRegistrationTokensToTopic saja.

Buat langganan dan kirim pesan topik

  1. Pada titik ini Anda siap untuk membuat langganan topik dan mengirim pesan ke sana.
  2. Jalankan fungsi main kelas FcmSubscriptionManager.java . Ini akan membuat langganan topik.
  3. Sekarang, atur kode untuk mengirim pesan. Mirip 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, perbarui metode main untuk hanya mengaktifkan fungsi sendMessageToFcmTopic .
  4. Jalankan fungsi main FcmSender.java . Ini akan mengirim 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

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

  1. Untuk penghentian langganan topik sisi server, gunakan API unsubscribeFromTopic ini. Anda akan menambahkan kode yang relevan ke fungsi unsubscribeFcmRegistrationTokensFromTopic dari 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 Anda secara tepat waktu dengan konten yang relevan.

947def3eb33b1e4a.gif

Apa berikutnya?

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

Dokumen Referensi