Buka konsol

Melakukan Autentikasi dengan Firebase secara Anonim Menggunakan JavaScript

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 JavaScript.
  2. Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  3. 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 menggunakan Firebase, buat agar pengguna tersebut login secara anonim dengan mengikuti langkah-langkah berikut:

  1. Panggil metode signInAnonymously:
    firebase.auth().signInAnonymously().catch(function(error) {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
      // ...
    });
    Di sini, Anda juga dapat menemukan dan menangani error. Untuk mengetahui daftar kode error, lihat Dokumen Referensi Auth.
  2. Jika metode signInAnonymously diselesaikan tanpa mengalami error, observer yang terdaftar di onAuthStateChanged akan terpicu dan Anda dapat memperoleh data akun milik pengguna anonim dari objek User:
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.
        var isAnonymous = user.isAnonymous;
        var uid = user.uid;
        // ...
      } else {
        // User is signed out.
        // ...
      }
      // ...
    });

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. Untuk melakukannya, ikuti langkah-langkah berikut:

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

    Login dengan Google
    var credential = firebase.auth.GoogleAuthProvider.credential(
        googleUser.getAuthResponse().id_token);
    
    Login dengan Facebook
    var credential = firebase.auth.FacebookAuthProvider.credential(
        response.authResponse.accessToken);
    
    Login dengan email-sandi
    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
    
  3. Teruskan objek AuthCredential ke metode link pengguna yang login:

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

Jika panggilan ke link berhasil, akun baru pengguna tersebut dapat mengakses data Firebase milik akun anonim.

Langkah berikutnya

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