Bergabunglah dengan kami secara langsung dan online di Firebase Summit pada 18 Oktober 2022. Pelajari cara Firebase dapat membantu Anda mempercepat pengembangan aplikasi, merilis aplikasi dengan percaya diri, dan meningkatkan skala dengan mudah. Daftar sekarang

Siapkan aplikasi klien Firebase Cloud Messaging di Flutter

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Ikuti langkah-langkah ini untuk menyiapkan klien FCM di Flutter.

Penyiapan dan persyaratan khusus platform

Beberapa langkah yang diperlukan bergantung pada platform yang Anda targetkan.

iOS+

Aktifkan kemampuan aplikasi di Xcode

Sebelum aplikasi Anda dapat mulai menerima pesan, Anda harus mengaktifkan pemberitahuan push dan mode latar belakang di proyek Xcode Anda.

  1. Buka ruang kerja proyek Xcode Anda ( ios/Runner.xcworkspace ).
  2. Aktifkan pemberitahuan push .
  3. Aktifkan pengambilan Latar Belakang dan mode Eksekusi latar belakang Pemberitahuan jarak jauh .

Unggah kunci otentikasi APN Anda

Sebelum Anda menggunakan FCM, unggah sertifikat APN Anda ke Firebase. Jika Anda belum memiliki sertifikat APN, buatlah di Pusat Anggota Pengembang Apple .

  1. Di dalam proyek Anda di Firebase console, pilih ikon roda gigi, pilih Pengaturan Proyek , lalu pilih tab Pesan Awan .
  2. Pilih tombol Unggah Sertifikat untuk sertifikat pengembangan, sertifikat produksi, atau keduanya. Setidaknya satu diperlukan.
  3. Untuk setiap sertifikat, pilih file .p12, dan berikan kata sandi, jika ada. Pastikan ID paket untuk sertifikat ini cocok dengan ID paket aplikasi Anda. Pilih Simpan .

Metode swizzling

Untuk menggunakan plugin FCM Flutter di perangkat Apple, Anda tidak boleh menonaktifkan metode swizzling. Swizzling diperlukan, dan tanpanya, fitur utama Firebase seperti penanganan token FCM tidak berfungsi dengan baik.

Android

Layanan Google Play

Klien FCM memerlukan perangkat yang menjalankan Android 4.4 atau lebih tinggi yang juga telah menginstal layanan Google Play, atau emulator yang menjalankan Android 4.4 dengan Google API. Perhatikan bahwa Anda tidak terbatas pada penerapan aplikasi Android Anda melalui Google Play Store.

Aplikasi yang mengandalkan SDK Layanan Play harus selalu memeriksa perangkat untuk APK layanan Google Play yang kompatibel sebelum mengakses fitur layanan Google Play. Disarankan untuk melakukan ini di dua tempat: di metode onCreate() aktivitas utama, dan di metode onResume() -nya. Pemeriksaan onCreate() memastikan bahwa aplikasi tidak dapat digunakan tanpa pemeriksaan yang berhasil. Pemeriksaan onResume() memastikan bahwa jika pengguna kembali ke aplikasi yang sedang berjalan melalui beberapa cara lain, seperti melalui tombol kembali, pemeriksaan tetap dilakukan.

Jika perangkat tidak memiliki versi layanan Google Play yang kompatibel, aplikasi Anda dapat memanggil GoogleApiAvailability.makeGooglePlayServicesAvailable() untuk mengizinkan pengguna mengunduh layanan Google Play dari Play Store.

Web

Konfigurasikan Kredensial Web dengan FCM

Antarmuka Web FCM menggunakan kredensial Web yang disebut kunci "Identifikasi Server Aplikasi Sukarela", atau "VAPID", untuk mengotorisasi permintaan pengiriman ke layanan push web yang didukung. Untuk berlangganan aplikasi Anda ke pemberitahuan push, Anda perlu mengaitkan sepasang kunci dengan proyek Firebase Anda. Anda dapat membuat pasangan kunci baru atau mengimpor pasangan kunci yang ada melalui Firebase console.

Buat pasangan kunci baru
  1. Buka tab Cloud Messaging pada panel Setelan konsol Firebase dan gulir ke bagian konfigurasi Web .

  2. Di tab Sertifikat Push Web , klik Buat Pasangan Kunci . Konsol menampilkan pemberitahuan bahwa pasangan kunci telah dibuat, dan menampilkan string kunci publik dan tanggal ditambahkan.

Impor pasangan kunci yang ada

Jika Anda sudah memiliki pasangan kunci yang sudah Anda gunakan dengan aplikasi web, Anda dapat mengimpornya ke FCM sehingga Anda dapat menjangkau instance aplikasi web yang ada melalui FCM API. Untuk mengimpor kunci, Anda harus memiliki akses tingkat pemilik ke proyek Firebase. Impor kunci publik dan pribadi Anda yang ada dalam bentuk enkode aman URL base64:

  1. Buka tab Cloud Messaging pada panel Setelan konsol Firebase dan gulir ke bagian konfigurasi Web .

  2. Di tab sertifikat Web Push , temukan dan pilih teks tautan, "impor pasangan kunci yang ada."

  3. Dalam dialog Impor pasangan kunci , berikan kunci publik dan pribadi Anda di bidang yang sesuai dan klik Impor . Konsol menampilkan string kunci publik dan tanggal ditambahkan.

Untuk informasi selengkapnya tentang format kunci dan cara membuatnya, lihat Kunci server aplikasi .

Instal plugin FCM

  1. Instal dan inisialisasi plugin Firebase untuk Flutter jika Anda belum melakukannya.

  2. Dari root proyek Flutter Anda, jalankan perintah berikut untuk menginstal plugin:

    flutter pub add firebase_messaging
    
  3. Setelah selesai, bangun kembali aplikasi Flutter Anda:

    flutter run
    

Akses token pendaftaran

Untuk mengirim pesan ke perangkat tertentu, Anda perlu mengetahui token pendaftaran perangkat tersebut. Karena Anda harus memasukkan token di bidang di Notifications console untuk menyelesaikan tutorial ini, pastikan untuk menyalin token atau menyimpannya dengan aman setelah Anda mengambilnya.

Untuk mengambil token pendaftaran saat ini untuk instance aplikasi, panggil getToken() . Jika izin pemberitahuan belum diberikan, metode ini akan meminta izin pemberitahuan kepada pengguna. Jika tidak, ia mengembalikan token atau menolak masa depan karena kesalahan.

final fcmToken = await FirebaseMessaging.instance.getToken();

Pada platform web, berikan kunci publik VAPID Anda ke getToken() :

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

Untuk diberi tahu setiap kali token diperbarui, berlangganan aliran onTokenRefresh :

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

Cegah inisialisasi otomatis

Saat token pendaftaran FCM dibuat, library akan mengupload ID dan data konfigurasi ke Firebase. Jika Anda lebih suka mencegah pembuatan otomatis token, nonaktifkan inisialisasi otomatis pada waktu pembuatan.

iOS

Di iOS, tambahkan nilai metadata ke Info.plist Anda :

FirebaseMessagingAutoInitEnabled = NO

Android

Di Android, nonaktifkan pengumpulan Analytics dan inisialisasi otomatis FCM (Anda harus menonaktifkan keduanya) dengan menambahkan nilai metadata ini ke AndroidManifest.xml Anda :

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

Aktifkan kembali FCM auto-init saat runtime

Untuk mengaktifkan auto-init untuk instance aplikasi tertentu, panggil setAutoInitEnabled() :

await FirebaseMessaging.instance.setAutoInitEnabled(true);

Nilai ini tetap ada selama aplikasi dimulai ulang setelah disetel.

Langkah selanjutnya

Setelah aplikasi klien disiapkan, Anda siap untuk mulai mengirim pesan downstream dengan Notifications composer . Lihat Mengirim pesan percobaan ke aplikasi berlatar belakang .

Untuk menambahkan perilaku lain yang lebih canggih ke aplikasi Anda, Anda memerlukan implementasi server .

Kemudian, di klien aplikasi Anda: