Ikuti langkah-langkah berikut untuk menyiapkan klien FCM di Flutter.
Penyiapan dan persyaratan khusus platform
Beberapa langkah yang diperlukan bergantung pada platform yang Anda targetkan.
iOS+
Mengaktifkan kemampuan aplikasi di Xcode
Sebelum aplikasi dapat mulai menerima pesan, Anda harus mengaktifkan notifikasi push dan mode latar belakang dalam project Xcode.
- Buka ruang kerja project Xcode (
ios/Runner.xcworkspace
). - Aktifkan notifikasi push.
- Aktifkan Pengambilan latar belakang dan Mode eksekusi latar belakang pada notifikasi jarak jauh.
Mengupload kunci autentikasi APNs
Sebelum menggunakan FCM, upload sertifikat APNs Anda ke Firebase. Jika Anda belum memiliki sertifikat APNs, buat di Apple Developer Member Center.
- Pada project Anda di Firebase console, pilih ikon roda gigi, pilih Project Settings, lalu pilih tab Cloud Messaging.
- Pilih tombol Upload Certificate untuk sertifikat pengembangan, sertifikat produksi, atau keduanya. Anda harus memilih setidaknya satu dari keduanya.
- Untuk masing-masing sertifikat, pilih file .p12, dan masukkan sandi jika ada. Pastikan ID paket untuk sertifikat ini cocok dengan ID paket aplikasi Anda. Pilih Save.
Method swizzling
Untuk menggunakan plugin FCM Flutter di perangkat Apple, Anda tidak boleh menonaktifkan method swizzling. Swizzling diperlukan dan jika dinonaktifkan, fitur-fitur penting Firebase seperti penanganan token FCM tidak akan berfungsi dengan benar.
Android
Layanan Google Play
Klien FCM memerlukan perangkat yang menjalankan Android 4.4 atau versi lebih tinggi dan sudah menginstal layanan Google Play, atau emulator yang menjalankan Android 4.4 dengan Google API. Perlu diperhatikan bahwa aplikasi Android bisa di-deploy tidak hanya melalui Google Play Store.
Aplikasi yang mengandalkan SDK Layanan Play harus selalu memeriksa perangkat untuk memastikan adanya APK layanan Google Play yang kompatibel sebelum mengakses fitur layanan Google Play. Sebaiknya lakukan hal ini di dua tempat: di metode onCreate()
aktivitas utama, dan di metode onResume()
-nya. Pemeriksaan di onCreate()
memastikan bahwa aplikasi tidak dapat digunakan jika pemeriksaan tidak berhasil. Pemeriksaan di onResume()
memastikan bahwa jika pengguna kembali ke aplikasi yang sedang berjalan melalui cara lain, misalnya dengan tombol kembali, pemeriksaan akan tetap dilakukan.
Jika perangkat tidak memiliki versi layanan Google Play yang kompatibel, aplikasi Anda dapat memanggil GoogleApiAvailability.makeGooglePlayServicesAvailable()
agar pengguna dapat mendownload layanan Google Play dari Play Store.
Web
Mengonfigurasi Kredensial Web dengan FCM
Antarmuka Web FCM menggunakan kredensial Web yang disebut kunci "Voluntary Application Server Identification", atau "VAPID", untuk mengizinkan permintaan kirim ke layanan web push yang didukung. Untuk membuat aplikasi Anda berlangganan notifikasi push, Anda perlu menautkan sepasang kunci ke project Firebase Anda. Anda dapat membuat pasangan kunci baru atau mengimpor pasangan kunci yang ada melalui Firebase console.
Membuat pasangan kunci baru
Di panel Settings Firebase console, buka tab Cloud Messaging, lalu scroll ke bagian Web configuration.
Di tab Web Push certificates, klik Generate Key Pair. Console akan menampilkan pemberitahuan bahwa pasangan kunci berhasil dibuat, serta menampilkan string kunci publik dan tanggal penambahannya.
Mengimpor pasangan kunci yang ada
Jika sudah memiliki pasangan kunci yang digunakan dengan aplikasi web, Anda dapat mengimpornya ke FCM. Dengan begitu, Anda dapat menjangkau instance aplikasi web yang ada melalui FCM API. Untuk mengimpor kunci, Anda harus memiliki akses level pemilik ke project Firebase. Impor kunci publik dan pribadi yang ada dalam format berenkode base64 yang aman untuk URL:
Di panel Settings Firebase console, buka tab Cloud Messaging, lalu scroll ke bagian Web configuration.
Di tab Web Push certificates, temukan dan pilih teks link, "import an existing key pair".
Dalam dialog Import a key pair, berikan kunci publik dan pribadi Anda di kolom terkait dan klik Import. Console akan menampilkan string kunci publik dan tanggal penambahannya.
Untuk mengetahui informasi lebih lanjut tentang format kunci dan cara menghasilkannya, lihat Kunci server aplikasi.
Menginstal plugin FCM
Instal dan lakukan inisialisasi plugin Firebase untuk Flutter jika Anda belum melakukannya.
Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin:
flutter pub add firebase_messaging
Setelah selesai, build ulang aplikasi Flutter Anda:
flutter run
Mengakses token pendaftaran
Untuk mengirim pesan ke perangkat tertentu, Anda perlu mengetahui token pendaftaran perangkat tersebut. Karena Anda harus memasukkan token ke suatu kolom di konsol Notifications agar dapat menyelesaikan tutorial ini, pastikan Anda menyalin token tersebut atau menyimpannya dengan aman setelah mengambilnya.
Untuk mengambil token pendaftaran saat ini untuk instance aplikasi, panggil getToken()
. Jika izin notifikasi belum diberikan, metode ini akan meminta izin notifikasi dari pengguna. Jika izin sudah diberikan, metode tersebut akan menampilkan token atau menolak future karena terjadi error.
// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);
// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
// APNS token is available, make FCM plugin API requests...
}
Di platform web, teruskan kunci publik VAPID Anda ke getToken()
:
final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");
Agar mendapatkan pemberitahuan setiap kali token diperbarui, berlanggananlah ke aliran data 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.
});
Mencegah inisialisasi otomatis
Saat token pendaftaran FCM dibuat, library mengupload data konfigurasi dan ID ke Firebase. Jika Anda ingin mencegah pembuatan token secara otomatis, nonaktifkan inisialisasi otomatis pada waktu build.
iOS
Di iOS, tambahkan nilai metadata ke Info.plist
:
FirebaseMessagingAutoInitEnabled = NO
Android
Di Android, nonaktifkan pengumpulan Analytics dan inisialisasi otomatis FCM (keduanya harus dinonaktifkan) dengan menambahkan nilai metadata ini ke AndroidManifest.xml
:
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
Mengaktifkan kembali inisialisasi otomatis FCM saat runtime
Untuk mengaktifkan inisialisasi otomatis untuk instance aplikasi tertentu, panggil setAutoInitEnabled()
:
await FirebaseMessaging.instance.setAutoInitEnabled(true);
Nilai ini akan tetap sama setiap kali aplikasi dimulai ulang.
Langkah berikutnya
Setelah aplikasi klien disiapkan, Anda siap untuk mulai mengirim pesan downstream dengan Notifications Composer. Baca artikel Mengirim pesan pengujian ke aplikasi di latar belakang.
Untuk menambahkan perilaku lain yang lebih canggih ke aplikasi, Anda memerlukan implementasi server.
Kemudian, di klien aplikasi Anda: