JavaScript Kullanarak Firebase ile Anonim Kimlik Doğrulama

Geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication kullanabilirsiniz Firebase ile kimlik doğrulama. Bu geçici anonim hesaplar şu amaçlarla kullanılabilir: henüz uygulamanıza kaydolmamış kullanıcıların verilerle korunan verilerle çalışmasını sağlar izin verir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse: oturum açma kimlik bilgilerini anonimleştirerek koruma altındaki verilerle çalışmaya devam edebilmeleri için oturum açın.

Başlamadan önce

  1. Firebase'i JavaScript projenize ekleyin.
  2. Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolunda bulabilirsiniz.
  3. Anonim kimlik doğrulamayı etkinleştir:
    1. Firebase konsolunda Auth bölümünü açın.
    2. Sign-in Methods (Oturum Açma Yöntemleri) sayfasında, Anonymous (Anonim) oturum açma yöntemini kullanabilirsiniz.
    3. İsteğe bağlı: Projenizi Firebase Authentication with Identity Platform, otomatik temizlemeyi etkinleştirebilirsiniz. Zaman Bu ayarı etkinleştirdiğinizde, 30 günden daha eski anonim hesaplar otomatik olarak silindi. Otomatik temizlemenin etkin olduğu projelerde anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilir. Görüntüleyin Otomatik temizlik.

Firebase ile anonim olarak kimlik doğrulama

Oturumu kapalı olan bir kullanıcı, Firebase'de, aşağıdaki adımları uygulayarak kullanıcının anonim olarak oturum açmasını sağlayın:

  1. signInAnonymously yöntemini çağırın:

    Web

    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

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    Ayrıca, hataları yakalayıp işleyebilirsiniz. Hata kodlarının listesi için Kimlik Doğrulama Referans Belgeleri'ne göz atın.
  2. signInAnonymously yöntemi hatasız tamamlanırsa gözlemci, onAuthStateChanged tetiklenir ve anonim kullanıcının hesap verilerini User nesnesinden alabilirsiniz:

    Web

    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/auth.user
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web

    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/v8/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });
ziyaret edin.

Anonim bir hesabı kalıcı hesaba dönüştürme

Anonim bir kullanıcı uygulamanıza kaydolduğunda, bu kişilerin uygulamanızı veya oyununuzu yeni hesabıyla çalışmaya devam edebilir. Örneğin, Kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yapma Yeni hesabının alışveriş sepetinde bulunabilir. Bunun için aşağıdaki adımları uygulayın: için şu adımları izleyin:

  1. Kullanıcı kaydolduğunda, kullanıcının en az bir yetkili sağlayıcıdan birini çağırarak Auth.signInWith yöntem. Örneğin, kullanıcının Google kimliği jetonunu alın. Facebook erişim jetonu veya e-posta adresi ve şifre.
  2. Yeni kimlik doğrulama sağlayıcı için bir AuthCredential alın:

    Google ile Oturum Açma

    Web

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

    Web

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Facebook'a Giriş

    Web

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

    Web

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    E-posta şifresiyle oturum açma

    Web

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

    Web

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. AuthCredential nesnesini oturum açan kullanıcının cihazına iletin link yöntemi:

    Web

    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

    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);
      });

link çağrısı başarılı olursa kullanıcının yeni hesabı: Anonim hesabın Firebase verilerine erişebilir.

Otomatik temizleme

Projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz şunları yapabilirsiniz: Firebase konsolunda otomatik temizlemeyi etkinleştirin. Bu özelliği etkinleştirdiğinizde Firebase'in 30 günden daha eski anonim hesapları otomatik olarak silmesine olanak tanır. Otomatik kullanılan projelerde temizlik etkin olduğunda, anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilmez.

  • Otomatik temizleme özelliği etkinleştirildikten sonra oluşturulan anonim hesaplar otomatik olarak silinebilir oluşturulduktan 30 gün sonra herhangi bir zamanda silinir.
  • Mevcut anonim hesaplar, 30 gün sonra otomatik olarak silinebilir. etkinleştirebilirsiniz.
  • Otomatik temizlemeyi kapatırsanız silinmesi planlanan tüm anonim hesaplar kalır silinmesi planlandı.
  • "Yükseltme" seçeneğini belirlerseniz herhangi bir oturum açma yöntemine bağlayarak anonim bir hesap üzerinde çalışırsanız otomatik olarak silinmez.

Bu özelliği etkinleştirmeden önce kaç kullanıcının etkileneceğini görmek istiyorsanız ve projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz şuna göre filtreleyebilirsiniz: Cloud'da is_anon Günlük Kaydı.

Sonraki adımlar

Kullanıcılar artık Firebase ile kimlik doğrulaması yapabildiğine göre Firebase veritabanınızdaki verileri kullanarak Firebase kuralları.