Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Otentikasi dengan Firebase Secara Anonim Menggunakan JavaScript

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

  1. Tambahkan Firebase ke proyek JavaScript Anda .
  2. Jika Anda belum menghubungkan aplikasi ke proyek Firebase, lakukan dari Firebase console .
  3. Aktifkan otentikasi anonim:
    1. Di Firebase console , buka bagian Auth .
    2. Pada halaman Metode Masuk , aktifkan metode masuk Anonim .
    3. Opsional : Jika Anda telah mengupgrade proyek ke Firebase Authentication dengan Identity Platform , Anda dapat mengaktifkan 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. Panggil metode signInAnonymously :

    Web version 9

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web version 8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    Ini juga tempat Anda dapat menangkap dan menangani kesalahan. Untuk daftar kode kesalahan, lihat Dokumen Referensi Auth .
  2. Jika metode signInAnonymously selesai tanpa kesalahan, pengamat yang terdaftar di onAuthStateChanged akan memicu dan Anda bisa mendapatkan data akun pengguna anonim dari objek User :

    Web version 9

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/firebase.User
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web version 8

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

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 Auth.signInWith . Misalnya, dapatkan token ID Google pengguna, token akses Facebook, atau alamat email dan kata sandi.
  2. Dapatkan AuthCredential untuk penyedia otentikasi baru:

    Masuk dengan Google

    Web version 9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web version 8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Masuk Facebook

    Web version 9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web version 8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    Masuk email-kata sandi

    Web version 9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web version 8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. Teruskan objek AuthCredential ke metode link pengguna yang masuk:

    Web version 9

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web version 8

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

Jika panggilan untuk link berhasil, akun baru pengguna dapat mengakses data Firebase akun anonim.

Pembersihan otomatis

Jika Anda telah meningkatkan versi proyek ke Firebase Authentication dengan Identity Platform , Anda dapat mengaktifkan pembersihan otomatis di Firebase console. Saat Anda mengaktifkan fitur ini, Anda mengizinkan, Firebase untuk secara otomatis menghapus akun anonim yang lebih lama dari 30 hari. Dalam proyek dengan pembersihan otomatis yang diaktifkan, autentikasi anonim tidak akan diperhitungkan dalam batas penggunaan atau kuota penagihan.

  • Setiap akun anonim yang dibuat setelah mengaktifkan pembersihan otomatis dapat dihapus secara otomatis kapan saja setelah 30 hari setelah pembuatan.
  • Akun anonim yang dibuat sebelum mengaktifkan pembersihan otomatis akan memenuhi syarat untuk penghapusan otomatis mulai 30 hari setelah mengaktifkan pembersihan otomatis.
  • Jika Anda mematikan pembersihan otomatis, semua akun anonim yang dijadwalkan untuk dihapus akan tetap dijadwalkan untuk dihapus. Akun ini tidak diperhitungkan dalam batas penggunaan atau kuota penagihan.
  • 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 .