Untuk memulai FCM, bangun kasus penggunaan yang paling sederhana: mengirimkan pesan notifikasi pengujian dari Notifications Composer ke perangkat pengembangan saat aplikasi berada di latar belakang perangkat. Halaman ini mencantumkan semua langkah untuk mencapainya, mulai dari penyiapan hingga verifikasi — mungkin mencakup langkah-langkah yang telah Anda selesaikan jika Anda telah menyiapkan aplikasi klien Apple untuk FCM.
Tambahkan Firebase ke proyek Apple Anda
Bagian ini mencakup tugas yang mungkin telah Anda selesaikan jika Anda telah mengaktifkan fitur Firebase lainnya untuk aplikasi Anda. Khusus untuk FCM, Anda harus mengunggah kunci autentikasi APN dan mendaftar untuk notifikasi jarak jauh .
Prasyarat
Pasang yang berikut ini:
- Xcode 13.3.1 atau lebih baru
Pastikan proyek Anda memenuhi persyaratan berikut:
- Proyek Anda harus menargetkan versi platform ini atau yang lebih baru:
- iOS 11
- macOS 10.13
- tvOS 12
- watchOS 6
- Proyek Anda harus menargetkan versi platform ini atau yang lebih baru:
Siapkan perangkat Apple fisik untuk menjalankan aplikasi Anda, dan selesaikan tugas berikut:
- Dapatkan Kunci Autentikasi Notifikasi Push Apple untuk akun Pengembang Apple Anda.
- Aktifkan Push Notifications di XCode di bawah App > Capabilities .
- Masuk ke Firebase menggunakan akun Google Anda.
Jika Anda belum memiliki proyek Xcode dan hanya ingin mencoba produk Firebase, Anda dapat mendownload salah satu contoh quickstart kami.
Buat proyek Firebase
Sebelum dapat menambahkan Firebase ke aplikasi Apple, Anda perlu membuat proyek Firebase untuk terhubung ke aplikasi Anda. Kunjungi Memahami Proyek Firebase untuk mempelajari lebih lanjut tentang proyek Firebase.
Daftarkan aplikasi Anda dengan Firebase
Untuk menggunakan Firebase di aplikasi Apple, Anda perlu mendaftarkan aplikasi ke proyek Firebase. Mendaftarkan aplikasi Anda sering disebut "menambahkan" aplikasi Anda ke proyek Anda.
Buka konsol Firebase .
Di tengah halaman ikhtisar proyek, klik ikon iOS+ untuk meluncurkan alur kerja penyiapan.
Jika Anda sudah menambahkan aplikasi ke proyek Firebase, klik Tambahkan aplikasi untuk menampilkan opsi platform.
Masukkan ID bundel aplikasi Anda di bidang ID bundel .
ID bundel secara unik mengidentifikasi aplikasi di ekosistem Apple.
Temukan ID bundel Anda: buka proyek Anda di Xcode, pilih aplikasi tingkat teratas di navigator proyek, lalu pilih tab Umum .
Nilai bidang Pengenal Bundel adalah ID bundel (misalnya,
com.yourcompany.yourproject
).Ketahuilah bahwa nilai ID bundel peka terhadap huruf besar-kecil, dan tidak dapat diubah untuk aplikasi Firebase ini setelah didaftarkan ke proyek Firebase Anda.
(Opsional) Masukkan informasi aplikasi lainnya: Nama panggilan aplikasi dan ID App Store .
Nama panggilan aplikasi : Pengidentifikasi kenyamanan internal yang hanya dapat dilihat oleh Anda di konsol Firebase
ID App Store : Digunakan oleh Firebase Dynamic Links untuk mengalihkan pengguna ke halaman App Store Anda dan oleh Google Analytics untuk mengimpor peristiwa konversi ke Google Ads . Jika aplikasi Anda belum memiliki ID App Store, Anda dapat menambahkan ID tersebut nanti di setelan Project .
Klik Daftarkan aplikasi .
Tambahkan file konfigurasi Firebase
Klik Download GoogleService-Info.plist untuk mendapatkan file konfigurasi platform Apple Firebase Anda (
GoogleService-Info.plist
).File konfigurasi Firebase berisi pengidentifikasi unik namun tidak rahasia untuk proyek Anda. Untuk mempelajari lebih lanjut tentang file konfigurasi ini, kunjungi Memahami Proyek Firebase .
Anda dapat mengunduh kembali file konfigurasi Firebase Anda kapan saja.
Pastikan nama file konfigurasi tidak ditambahkan dengan karakter tambahan, seperti
(2)
.
Pindahkan file konfigurasi Anda ke root proyek Xcode Anda. Jika diminta, pilih untuk menambahkan file konfigurasi ke semua target.
Jika Anda memiliki beberapa ID paket dalam proyek, Anda harus mengaitkan setiap ID paket dengan aplikasi terdaftar di konsol Firebase sehingga setiap aplikasi dapat memiliki file GoogleService-Info.plist
sendiri.
Tambahkan Firebase SDK ke aplikasi Anda
Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.
- Di Xcode, dengan proyek aplikasi Anda terbuka, arahkan ke File > Add Packages .
- Saat diminta, tambahkan repositori SDK platform Apple Firebase:
- Pilih perpustakaan Firebase Cloud Messaging.
- Untuk pengalaman optimal dengan Firebase Cloud Messaging, sebaiknya aktifkan Google Analytics di proyek Firebase Anda dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda. Anda dapat memilih perpustakaan tanpa koleksi IDFA atau dengan koleksi IDFA.
- Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk
Unggah kunci autentikasi APN Anda
Unggah kunci autentikasi APN Anda ke Firebase. Jika Anda belum memiliki kunci autentikasi APN, pastikan untuk membuatnya di Apple Developer Member Center .
Di dalam proyek Anda di Firebase console, pilih ikon roda gigi, pilih Project Settings , lalu pilih tab Cloud Messaging .
Di kunci autentikasi APN di bawah konfigurasi aplikasi iOS , klik tombol Unggah .
Telusuri ke lokasi tempat Anda menyimpan kunci, pilih, dan klik Buka . Tambahkan ID kunci untuk kunci tersebut (tersedia di Pusat Anggota Pengembang Apple ) dan klik Unggah .
Inisialisasi Firebase di aplikasi Anda
Anda harus menambahkan kode inisialisasi Firebase ke aplikasi Anda. Impor modul Firebase dan konfigurasikan instance bersama seperti yang ditunjukkan:
- Impor modul
FirebaseCore
diUIApplicationDelegate
Anda, serta 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 // ...
Cepat
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurasikan instance bersama
FirebaseApp
dalam metodeapplication(_:didFinishLaunchingWithOptions:)
delegasi aplikasi Anda:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Cepat
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Jika Anda menggunakan SwiftUI, Anda harus membuat delegasi aplikasi dan melampirkannya ke struktur
App
Anda melaluiUIApplicationDelegateAdaptor
atauNSApplicationDelegateAdaptor
. Anda juga harus menonaktifkan swizzling delegasi aplikasi. Untuk informasi selengkapnya, lihat 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
Baik saat startup, atau pada titik yang diinginkan dalam alur aplikasi Anda, daftarkan aplikasi Anda untuk notifikasi jarak jauh. PanggilregisterForRemoteNotifications
seperti yang ditunjukkan:Cepat
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];
Akses token pendaftaran
Untuk mengirim pesan ke perangkat tertentu, Anda perlu mengetahui token pendaftaran perangkat tersebut. Karena Anda harus memasukkan token di kolom di Notifications composer untuk menyelesaikan tutorial ini, pastikan untuk menyalin token atau menyimpannya dengan aman setelah Anda mengambilnya.
Secara default, FCM SDK membuat token pendaftaran untuk instance aplikasi klien saat peluncuran aplikasi. Mirip dengan token perangkat APN, token ini memungkinkan Anda mengirim notifikasi yang ditargetkan ke instance tertentu dari aplikasi Anda.
Dengan cara yang sama seperti platform Apple biasanya mengirimkan token perangkat APN saat aplikasi dimulai, FCM menyediakan token pendaftaran melalui metode messaging:didReceiveRegistrationToken:
FIRMessagingDelegate
FCM SDK mengambil token baru atau yang sudah ada selama peluncuran awal aplikasi dan setiap kali token diperbarui atau dibatalkan. Dalam semua kasus, FCM SDK memanggil messaging:didReceiveRegistrationToken:
dengan token yang valid.
Token pendaftaran dapat berubah ketika:
- Aplikasi dipulihkan di perangkat baru
- Pengguna mencopot pemasangan/memasang ulang aplikasi
- Pengguna menghapus data aplikasi.
Atur delegasi perpesanan
Untuk menerima token pendaftaran, implementasikan protokol delegasi perpesanan dan setel properti delegate
FIRMessaging
setelah memanggil [FIRApp configure]
. Misalnya, jika delegasi aplikasi Anda sesuai dengan protokol delegasi perpesanan, Anda dapat menyetel delegasi pada application:didFinishLaunchingWithOptions:
ke dirinya sendiri.
Cepat
Messaging.messaging().delegate = self
Objective-C
[FIRMessaging messaging].delegate = self;
Mengambil token pendaftaran saat ini
Token pendaftaran dikirimkan melalui metode messaging:didReceiveRegistrationToken:
. Metode ini umumnya dipanggil sekali per aplikasi dimulai dengan token pendaftaran. Saat metode ini dipanggil, ini adalah waktu yang ideal untuk:
- Jika token pendaftaran baru, kirimkan ke server aplikasi Anda.
- Berlangganan token pendaftaran ke topik. Ini diperlukan hanya untuk langganan baru atau untuk situasi di mana pengguna menginstal ulang aplikasi.
Anda dapat mengambil token secara langsung menggunakan token(completion:) . Kesalahan bukan nol diberikan jika pengambilan token gagal dengan cara apa pun.
Cepat
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 alih-alih menyimpannya.
Pantau penyegaran token
Untuk diberi tahu setiap kali token diperbarui, berikan delegasi yang sesuai dengan protokol delegasi perpesanan. Contoh berikut mendaftarkan delegasi dan menambahkan metode delegasi yang tepat:
Cepat
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. }
Alternatifnya, Anda dapat mendengarkan NSNotification
bernama kFIRMessagingRegistrationTokenRefreshNotification
daripada menyediakan metode delegasi. Properti token selalu memiliki nilai token saat ini.
Kirim pesan pemberitahuan
Instal dan jalankan aplikasi di perangkat target. Di perangkat Apple, Anda harus menyetujui permintaan izin untuk menerima notifikasi jarak jauh.
Pastikan aplikasi berada di latar belakang perangkat.
Di konsol Firebase, buka halaman Messaging .
Jika ini adalah pesan pertama Anda, pilih Buat kampanye pertama Anda .
- Pilih pesan Firebase Notification dan pilih Create .
Jika tidak, pada tab Kampanye , pilih Kampanye baru lalu Notifikasi .
Masukkan teks pesan. Semua bidang lainnya bersifat opsional.
Pilih Kirim pesan percobaan dari panel kanan.
Di bidang berlabel Tambahkan token pendaftaran FCM , masukkan token pendaftaran yang Anda peroleh di bagian sebelumnya dari panduan ini.
Pilih Tes .
Setelah Anda memilih Test , perangkat klien yang ditargetkan (dengan aplikasi di latar belakang) akan menerima notifikasi.
Untuk wawasan tentang pengiriman pesan ke aplikasi Anda, lihat dasbor pelaporan FCM , yang mencatat jumlah pesan yang dikirim dan dibuka di perangkat Apple dan Android, beserta data untuk "tayangan" (pemberitahuan yang dilihat oleh pengguna) untuk aplikasi Android.
Langkah selanjutnya
Untuk melampaui pesan notifikasi dan menambahkan perilaku lain yang lebih canggih ke aplikasi Anda, lihat: