Melakukan Autentikasi dengan Firebase secara Anonim di iOS

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 bekerja dengan data yang dilindungi oleh aturan keamanan. Jika pengguna anonim memutuskan untuk mendaftar ke aplikasi Anda, hubungkan kredensial login mereka ke akun anonim agar mereka dapat terus menangani data yang dilindungi pada sesi-sesi selanjutnya.

Sebelum memulai

  1. Tambahkan Firebase ke project iOS Anda.
  2. Sertakan pod berikut di Podfile Anda:
    pod 'Firebase/Auth'
    
  3. Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  4. Aktifkan autentikasi anonim:
    1. Di Firebase console, buka bagian Auth.
    2. Di halaman Metode Login, aktifkan metode login Anonim.

Melakukan autentikasi dengan Firebase secara anonim

Ketika pengguna yang tidak login menggunakan fitur aplikasi yang mengharuskan autentikasi dengan Firebase, buat pengguna tersebut login secara anonim dengan mengikuti langkah berikut:

  1. Impor modul Firebase di UIApplicationDelegate Anda:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. Konfigurasikan instance bersama FirebaseApp, yang biasanya ada dalam metode application:didFinishLaunchingWithOptions: aplikasi Anda:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  3. Panggil metode signInAnonymouslyWithCompletion::

    Swift

    Auth.auth().signInAnonymously() { (authResult, error) in
      // ...
    }
    

    Objective-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Jika metode signInAnonymouslyWithCompletion: selesai tanpa error, Anda bisa mendapatkan data akun pengguna anonim dari objek FIRAuthDataResult:

    Swift

    let user = authResult.user
    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 mengizinkan mereka untuk terus bekerja menggunakan akun barunya—misalnya, Anda dapat membuat item, yang mereka tambahkan ke keranjang belanja sebelum mendaftar, tetap tersedia di keranjang belanja akun barunya. Caranya, ikuti langkah-langkah berikut:

  1. Ketika pengguna mendaftar, selesaikan alur login untuk penyedia autentikasi pengguna hingga, tetapi tidak termasuk, tahap pemanggilan salah satu metode FIRAuth.signInWith. Misalnya, mendapatkan token ID Google, token akses Facebook, atau alamat email dan sandi pengguna tersebut.
  2. Dapatkan FIRAuthCredential untuk penyedia autentikasi yang baru:

    Login dengan Google
    Swift
    guard let authentication = user.authentication else { return }
    let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                      accessToken: authentication.accessToken)
    
    Objective-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Login dengan Facebook
    Swift
    let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.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];
    
  3. Teruskan objek FIRAuthCredential ke metode linkWithCredential:completion: dari pengguna yang login:

    Swift
        user.linkAndRetrieveData(with: credential) { (authResult, error) in
      // ...
    }
    }
    
    Objective-C
        [[FIRAuth auth].currentUser linkAndRetrieveDataWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

Jika panggilan ke linkWithCredential:completion: berhasil, akun pengguna yang baru dapat mengakses data Firebase milik akun anonim tersebut.

Langkah berikutnya

Setelah pengguna dapat melakukan autentikasi dengan Firebase, Anda dapat mengontrol aksesnya ke database Firebase menggunakan aturan Firebase.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.