Anda dapat menggunakan Firebase Authentication untuk membuat dan menggunakan akun anonim sementara untuk melakukan autentikasi dengan Firebase. Dengan akun anonim sementara ini, pengguna yang belum mendaftar ke aplikasi Anda dapat menggunakan data yang dilindungi oleh aturan keamanan. Jika pengguna anonim memutuskan untuk mendaftar ke aplikasi Anda, tautkan kredensial login mereka ke akun anonim tersebut agar mereka dapat terus menggunakan data yang dilindungi tersebut pada sesi-sesi selanjutnya.
Sebelum memulai
-
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 Authentication.
- Tambahkan flag
-ObjC
ke bagian Other Linker Flags pada setelan build target Anda. - Setelah selesai, Xcode akan otomatis mulai me-resolve dan mendownload dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk.git
- Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
- Aktifkan autentikasi anonim:
- Di Firebase console, buka bagian Auth.
- Di halaman Sign-in Methods, aktifkan metode login Anonymous.
- Opsional: Jika Anda telah mengupgrade project ke Firebase Authentication with Identity Platform, Anda dapat mengaktifkan pembersihan otomatis. Saat setelan ini diaktifkan, akun anonim yang berusia lebih dari 30 hari akan otomatis dihapus. Dalam project yang mengaktifkan pembersihan otomatis, autentikasi anonim tidak akan diperhitungkan lagi dalam batas penggunaan atau kuota penagihan. Lihat Pembersihan otomatis.
Melakukan autentikasi dengan Firebase secara anonim
Ketika pengguna yang logout menggunakan fitur aplikasi yang mengharuskan autentikasi dengan Firebase, login-kan pengguna tersebut secara anonim dengan mengikuti langkah-langkah berikut:
- 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() } } } }
- Panggil metode
signInAnonymouslyWithCompletion:
:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Jika metode
signInAnonymouslyWithCompletion:
selesai tanpa error, Anda bisa mendapatkan data akun pengguna anonim dari objekFIRAuthDataResult
:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Mengubah akun anonim menjadi akun permanen
Ketika pengguna anonim mendaftar ke aplikasi, Anda dapat mengizinkannya melanjutkan aktivitas dengan akun yang baru dibuat. Misalnya, Anda mungkin menginginkan agar item yang ditambahkan pengguna ke keranjang belanja sebelum mendaftar tersedia di keranjang belanja pengguna pada akun yang baru. Caranya, ikuti langkah-langkah berikut:
- Ketika pengguna mendaftar, selesaikan alur login untuk penyedia autentikasi pengguna tersebut hingga, tetapi sebelum, memanggil salah satu metode
FIRAuth.signInWith
. Misalnya, dapatkan token ID Google, token akses Facebook, atau alamat email dan sandi pengguna tersebut. Dapatkan
FIRAuthCredential
untuk penyedia autentikasi baru:Login dengan Google
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Login dengan Facebook
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Login dengan email-sandi
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Teruskan objek
FIRAuthCredential
ke metodelinkWithCredential:completion:
pengguna yang login:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
Jika panggilan ke linkWithCredential:completion:
berhasil, akun baru pengguna dapat mengakses data Firebase akun anonim.
Pembersihan otomatis
Jika Anda telah mengupgrade project ke Firebase Authentication with Identity Platform, Anda dapat mengaktifkan pembersihan otomatis di Firebase console. Jika fitur ini diaktifkan, Firebase akan otomatis menghapus akun anonim yang berusia lebih dari 30 hari. Dalam project yang mengaktifkan pembersihan otomatis, autentikasi anonim tidak akan diperhitungkan dalam batas penggunaan atau kuota penagihan.
- Setiap akun anonim yang dibuat setelah pembersihan otomatis diaktifkan dapat otomatis dihapus dalam waktu 30 hari setelah dibuat.
- Akun anonim yang ada akan memenuhi syarat untuk penghapusan otomatis 30 hari setelah pembersihan otomatis diaktifkan.
- Jika Anda menonaktifkan pembersihan otomatis, akun anonim yang dijadwalkan untuk dihapus akan tetap dijadwalkan untuk dihapus.
- Jika Anda "mengupgrade" akun anonim dengan menautkannya ke metode login apa pun, akun tersebut tidak akan otomatis dihapus.
Jika ingin melihat jumlah pengguna yang akan
terkena dampaknya jika Anda mengaktifkan fitur ini, dan Anda telah
mengupgrade project ke Firebase Authentication with Identity Platform, Anda dapat memfilter berdasarkan
is_anon
di Cloud
Logging.
Langkah berikutnya
Setelah pengguna dapat melakukan autentikasi dengan Firebase, Anda dapat mengontrol akses mereka ke data di database Firebase Anda menggunakan aturan Firebase.