Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Mengautentikasi dengan Firebase Secara Anonim di Platform Apple

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat menggunakan Firebase Authentication untuk membuat dan menggunakan akun anonim sementara untuk mengautentikasi dengan Firebase. Akun anonim sementara ini dapat digunakan untuk memungkinkan pengguna yang belum mendaftar ke aplikasi Anda untuk bekerja dengan data yang dilindungi oleh aturan keamanan. Jika pengguna anonim memutuskan untuk mendaftar ke aplikasi Anda, Anda dapat menautkan kredensial masuk mereka ke akun anonim sehingga mereka dapat terus bekerja dengan data mereka yang dilindungi di sesi mendatang.

Sebelum kamu memulai

Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.

  1. Di Xcode, dengan proyek aplikasi Anda terbuka, navigasikan ke File > Add Packages .
  2. Saat diminta, tambahkan repositori SDK platform Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Pilih pustaka Firebase Authentication.
  5. Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.

Selanjutnya, lakukan beberapa langkah konfigurasi:

  1. Jika Anda belum menghubungkan aplikasi ke proyek Firebase, lakukan dari Firebase console .
  2. Aktifkan otentikasi anonim:
    1. Di Firebase console , buka bagian Auth .
    2. Pada halaman Metode Masuk , aktifkan metode masuk Anonim .
    3. Opsional : Aktifkan pembersihan otomatis. Saat Anda mengaktifkan setelan ini, akun anonim yang lebih lama dari 30 hari akan dihapus secara otomatis. Dalam proyek dengan pembersihan otomatis yang diaktifkan, autentikasi anonim tidak akan lagi diperhitungkan dalam batas penggunaan atau kuota penagihan. Lihat Pembersihan otomatis .

Otentikasi dengan Firebase secara anonim

Saat pengguna yang logout menggunakan fitur aplikasi yang memerlukan autentikasi dengan Firebase, login pengguna secara anonim dengan menyelesaikan langkah-langkah berikut:

  1. Impor modul FirebaseCore di UIApplicationDelegate Anda, serta modul Firebase lain yang digunakan delegasi aplikasi Anda. Misalnya, untuk menggunakan Cloud Firestore dan Otentikasi:

    Cepat

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Konfigurasikan instance bersama FirebaseApp dalam metode application(_:didFinishLaunchingWithOptions:) delegasi aplikasi Anda:

    Cepat

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

    Objective-C

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

    Cepat

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

    Objective-C

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

    Cepat

    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;
    

Ubah akun anonim menjadi akun permanen

Saat pengguna anonim mendaftar ke aplikasi Anda, Anda mungkin ingin mengizinkan mereka melanjutkan pekerjaannya dengan akun baru mereka—misalnya, Anda mungkin ingin membuat item yang ditambahkan pengguna ke keranjang belanja mereka sebelum mereka mendaftar tersedia di akun baru mereka. keranjang belanja akun. Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Saat pengguna mendaftar, selesaikan alur masuk untuk penyedia autentikasi pengguna hingga, tetapi tidak termasuk, memanggil salah satu metode FIRAuth.signInWith . Misalnya, dapatkan token ID Google pengguna, token akses Facebook, atau alamat email dan kata sandi.
  2. Dapatkan FIRAuthCredential untuk penyedia otentikasi baru:

    Masuk dengan Google
    Cepat
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Objective-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Masuk Facebook
    Cepat
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Objective-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    Masuk email-kata sandi
    Cepat
    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: pengguna yang masuk:

    Cepat
        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

Saat Anda mengaktifkan pembersihan otomatis di Firebase console, akun anonim yang lebih lama dari 30 hari akan dihapus secara otomatis. Mengaktifkan pengaturan ini membuat database pengguna Anda tidak terisi dengan akun yang tidak digunakan. Dalam proyek dengan pembersihan otomatis yang diaktifkan, autentikasi anonim tidak akan diperhitungkan dalam batas penggunaan atau kuota penagihan.

  • Semua akun anonim yang dibuat setelah mengaktifkan pembersihan otomatis akan dihapus 30 hari setelah pembuatan.
  • Akun anonim yang dibuat sebelum mengaktifkan pembersihan otomatis akan dihapus sekitar 30 hari setelah mengaktifkan pembersihan otomatis.
  • Jika Anda mematikan pembersihan otomatis, semua akun anonim yang dijadwalkan untuk dihapus akan tetap dijadwalkan untuk dihapus.
  • Jika Anda "meningkatkan" akun anonim dengan menautkannya ke metode masuk apa pun, akun tidak akan dihapus secara otomatis.

Jika Anda ingin melihat berapa banyak pengguna yang akan terpengaruh sebelum Anda mengaktifkan fitur ini, dan Anda telah mengupgrade proyek Anda ke Firebase Authentication dengan Identity Platform , Anda dapat memfilter menurut is_anon di Cloud Logging .

Langkah selanjutnya

Setelah pengguna dapat mengautentikasi dengan Firebase, Anda dapat mengontrol akses mereka ke data di database Firebase Anda menggunakan aturan Firebase .