Untuk mulai menggunakan FCM, buat kasus penggunaan yang paling sederhana: mengirim pesan notifikasi pengujian dari Notifications composer ke perangkat pengembangan saat aplikasi berjalan di latar belakang pada perangkat. Halaman ini membahas semua langkah untuk mencapainya, dari penyiapan hingga verifikasi. Jadi, halaman ini mencakup langkah-langkah yang mungkin telah diselesaikan ketika menyiapkan aplikasi klien Apple untuk FCM.
Menambahkan Firebase ke project Apple
Bagian ini membahas tugas-tugas yang mungkin telah diselesaikan jika fitur Firebase lainnya telah diaktifkan untuk aplikasi Anda. Khusus untuk FCM, Anda harus mengupload kunci autentikasi APNs dan mendaftar untuk notifikasi jarak jauh.
Prasyarat
Instal yang berikut:
- Xcode 14.1 atau yang lebih baru
Pastikan project Anda memenuhi persyaratan berikut:
- Project Anda harus menarget versi platform berikut atau yang lebih baru:
- iOS 11
- macOS 10.13
- tvOS 12
- watchOS 6
- Project Anda harus menarget versi platform berikut atau yang lebih baru:
Siapkan perangkat Apple fisik untuk menjalankan aplikasi Anda, dan selesaikan tugas-tugas berikut:
- Dapatkan Kunci Autentikasi Apple Push Notification untuk akun Apple Developer.
- Di XCode, aktifkan Notifikasi Push di App > Capabilities.
- Login ke Firebase menggunakan Akun Google Anda.
Jika Anda belum memiliki project Xcode dan hanya ingin mencoba produk Firebase, download salah satu contoh panduan memulai.
Membuat project Firebase
Agar dapat menambahkan Firebase ke aplikasi Apple, Anda perlu membuat project Firebase yang akan dihubungkan ke aplikasi Anda. Buka bagian Memahami Project Firebase untuk mempelajari project Firebase lebih lanjut.
Mendaftarkan aplikasi ke Firebase
Untuk menggunakan Firebase di aplikasi Apple, Anda perlu mendaftarkan aplikasi ke project Firebase. Mendaftarkan aplikasi sering kali disebut sebagai "menambahkan" aplikasi ke project Anda.
Buka Firebase console.
Di bagian tengah halaman ringkasan project, klik ikon iOS+ untuk meluncurkan alur kerja penyiapan.
Jika Anda sudah menambahkan aplikasi ke project Firebase, klik Add app untuk menampilkan opsi platform.
Masukkan ID paket aplikasi Anda di kolom bundle ID.
(Opsional) Masukkan informasi lain aplikasi: App nickname dan App Store ID.
Klik Register app.
Menambahkan file konfigurasi Firebase
Klik Download GoogleService-Info.plist untuk mendapatkan file konfigurasi platform Apple Firebase Anda (
GoogleService-Info.plist
).Pindahkan file konfigurasi ke root project Xcode Anda. Jika diminta, pilih untuk menambahkan file konfigurasi ke semua target.
Jika ada beberapa ID paket dalam project, Anda harus mengaitkan setiap ID paket dengan aplikasi yang terdaftar di Firebase console, sehingga setiap aplikasi dapat memiliki file GoogleService-Info.plist
sendiri.
Menambahkan Firebase SDK ke aplikasi
Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.
- Di Xcode, dengan project aplikasi Anda dalam keadaan terbuka, buka File > Add Packages.
- Saat diminta, tambahkan repositori SDK platform Apple Firebase:
- Pilih library Firebase Cloud Messaging.
- Untuk mengoptimalkan penggunaan Firebase Cloud Messaging, sebaiknya aktifkan Google Analytics di project Firebase dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda. Anda dapat memilih library tanpa atau dengan pengumpulan IDFA.
- Setelah selesai, Xcode akan otomatis mulai me-resolve dan mendownload dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk
Mengupload kunci autentikasi APNs
Upload kunci autentikasi APN Anda ke Firebase. Jika Anda belum memiliki kunci autentikasi APN, pastikan untuk membuatnya di Apple Developer Member Center.
-
Pada project Anda di Firebase console, pilih ikon roda gigi, pilih Project Settings, lalu pilih tab Cloud Messaging.
-
Di bagian APNs authentication key pada iOS app configuration, klik tombol Upload.
-
Cari lokasi penyimpanan kunci, pilih lokasi tersebut, lalu klik Open. Tambahkan ID kunci untuk kunci tersebut (tersedia di Apple Developer Member Center) dan klik Upload.
Melakukan inisialisasi Firebase di aplikasi
Anda harus menambahkan kode inisialisasi Firebase ke aplikasi. Impor modul Firebase dan konfigurasikan instance bersama seperti berikut ini:
- Impor modul
FirebaseCore
dalamUIApplicationDelegate
Anda, serta semua modul Firebase lainnya yang digunakan oleh delegasi aplikasi Anda. Misalnya, untuk menggunakan Cloud Firestore dan Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurasikan instance bersama
FirebaseApp
di metodeapplication(_:didFinishLaunchingWithOptions:)
delegasi aplikasi Anda:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Jika menggunakan SwiftUI, Anda harus membuat delegasi aplikasi dan menambahkannya ke struct
App
melaluiUIApplicationDelegateAdaptor
atauNSApplicationDelegateAdaptor
. Anda juga harus menonaktifkan swizzling delegasi aplikasi. Untuk mengetahui informasi lebih lanjut, baca petunjuk SwiftUI.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Mendaftar untuk notifikasi jarak jauh
Saat aplikasi dimulai, atau pada waktu lain yang diinginkan dalam alur aplikasi, daftarkan aplikasi Anda untuk mengaktifkan notifikasi jarak jauh. PanggilregisterForRemoteNotifications
seperti yang ditunjukkan berikut:
Swift
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Objective-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
Mengakses token pendaftaran
Untuk mengirim pesan ke perangkat tertentu, Anda perlu mengetahui token pendaftaran perangkat tersebut. Karena Anda harus memasukkan token ke suatu kolom pada Notifications composer untuk menyelesaikan tutorial ini, pastikan Anda menyalin token atau menyimpannya dengan aman setelah mengambilnya.
Secara default, FCM SDK membuat token pendaftaran untuk instance aplikasi klien saat peluncuran aplikasi. Serupa dengan token perangkat APN, token ini dapat Anda gunakan untuk mengirimkan notifikasi bertarget ke instance tertentu dari aplikasi Anda.
Dengan cara yang sama seperti ketika platform Apple mengirimkan token perangkat APN pada saat aplikasi dimulai, FCM akan menyediakan token pendaftaran melalui metode messaging:didReceiveRegistrationToken:
dari FIRMessagingDelegate
.
FCM SDK mengambil token baru atau yang ada saat peluncuran awal aplikasi dan setiap kali token diperbarui atau dibatalkan validasinya.
Dalam semua kasus, FCM SDK memanggil messaging:didReceiveRegistrationToken:
dengan token yang valid.
Token pendaftaran dapat berubah jika:
- Aplikasi dipulihkan di perangkat baru
- Pengguna melakukan uninstal/instal ulang aplikasi
- Pengguna menghapus data aplikasi.
Menetapkan delegasi pesan
Untuk menerima token pendaftaran, terapkan protokol delegasi pesan dan tetapkan properti delegate
dari FIRMessaging
setelah memanggil [FIRApp configure]
.
Misalnya, jika delegasi aplikasi Anda sesuai dengan protokol delegasi pesan, Anda dapat menetapkan delegasi di application:didFinishLaunchingWithOptions:
ke properti itu sendiri.
Swift
Messaging.messaging().delegate = self
Objective-C
[FIRMessaging messaging].delegate = self;
Mengambil token pendaftaran saat ini
Token pendaftaran dikirimkan melalui metode messaging:didReceiveRegistrationToken:
. Biasanya metode ini dipanggil sekali pada saat aplikasi dimulai dengan token pendaftaran. Saat metode ini dipanggil, inilah saat yang tepat untuk:
- Mengirim token pendaftaran ke server aplikasi jika token itu masih baru.
- Mengatur token pendaftaran agar berlangganan topik. Ini hanya diperlukan untuk langganan baru atau untuk situasi saat pengguna menginstal ulang aplikasi.
Anda dapat mengambil token secara langsung menggunakan token(completion:). Error yang bukan null diberikan jika pengambilan token gagal dengan cara apa pun.
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
Anda dapat menggunakan metode ini kapan saja untuk mengakses token, sehingga Anda tidak perlu menyimpannya.
Memantau refresh pada token
Agar mendapatkan notifikasi setiap kali token diperbarui, berikan delegasi yang sesuai dengan protokol delegasi pesan. Berikut ini contoh pendaftaran delegasi dan penambahan metode delegasi yang tepat:
Swift
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Objective-C
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Atau, Anda dapat memproses NSNotification
yang bernama kFIRMessagingRegistrationTokenRefreshNotification
, daripada memberikan metode delegasi. Properti token selalu memiliki nilai token saat ini.
Mengirim pesan notifikasi
Instal dan jalankan aplikasi pada perangkat target. Pada perangkat Apple, Anda harus menyetujui permintaan izin untuk menerima notifikasi jarak jauh.
Pastikan aplikasi berjalan di latar belakang pada perangkat.
Di Firebase console, buka halaman Messaging.
Jika ini adalah pesan pertama Anda, pilih Create your first campaign.
- Pilih Firebase Notification messages, lalu pilih Create.
Atau, di tab Campaigns, pilih New campaign, lalu Notifications.
Masukkan teks pesan. Semua kolom lainnya bersifat opsional.
Pilih Send test message dari panel kanan.
Dalam kolom yang berlabel Add an FCM registration token, masukkan token pendaftaran yang diperoleh di bagian sebelumnya pada panduan ini.
Pilih Test.
Setelah Anda memilih Test, perangkat klien yang ditargetkan (dengan aplikasi berada di latar belakang) akan menerima notifikasi.
Untuk melihat data terkait pengiriman pesan ke aplikasi Anda, lihat dasbor pelaporan FCM, yang mencatat jumlah pesan yang terkirim dan dibuka di perangkat Apple dan Android, beserta data untuk "tayangan" (notifikasi yang dilihat oleh pengguna) untuk aplikasi Android.
Langkah berikutnya
Untuk mempelajari topik selain pesan notifikasi dan menambahkan perilaku lanjutan lain pada aplikasi Anda, lihat: