Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

JavaScript Kullanarak Anonim Olarak Firebase ile Kimlik Doğrulama

Firebase ile kimlik doğrulaması yapmak üzere geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına izin vermek için kullanılabilir. Anonim bir kullanıcı uygulama kaydolmak karar verirse yapabilirsiniz anonim hesabına oturum açma kimlik bilgilerini kendi bağlantı gelecek oturumlarda kendi korumalı verilerle çalışmak için devam edebilmesi için.

Sen başlamadan önce

  1. JavaScript projeye Firebase ekleyin .
  2. Henüz Firebase projesine uygulamanızı bağlı değil varsa, gelen bunu Firebase konsoluna .
  3. Anonim yetkilendirmeyi etkinleştir:
    1. In Firebase konsoluna , Auth bölümünü açın.
    2. Yöntemler Oturum Açma sayfasında, Anonim oturum açma yöntemine sağlar.

Firebase ile anonim olarak kimlik doğrulaması yapın

Oturumu kapatmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliği kullandığında, aşağıdaki adımları tamamlayarak kullanıcıda anonim olarak oturum açın:

  1. Çağrı signInAnonymously yöntemi:

    Web sürümü 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 sürümü 8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    Burası aynı zamanda hataları yakalayabileceğiniz ve işleyebileceğiniz yerdir. Hata kodlarının listesi için bir göz Auth Referans Dokümanlar .
  2. Eğer signInAnonymously yöntemi tamamlamalar hatasız, kayıtlı gözlemci onAuthStateChanged tetikleyecek ve anonim kullanıcının hesap verilerini alabilirsiniz User nesnesi:

    Web sürümü 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 sürümü 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
        // ...
      }
    });

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

Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesaplarıyla çalışmalarına devam etmelerine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesaplarında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:

  1. Kullanıcı kayıt oturum açma kullanıcının kimlik doğrulama sağlayıcısı yukarı için akış tamamlamak ancak birini çağırarak, dahil değil zaman Auth.signInWith yöntemlerle. Örneğin, kullanıcının Google ID jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın.
  2. Bir alın AuthCredential yeni kimlik doğrulama sağlayıcısı için:

    Google Oturum Açma

    Web sürümü 9

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

    Web sürümü 8

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

    Web sürümü 9

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

    Web sürümü 8

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

    Web sürümü 9

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

    Web sürümü 8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. Geçiş AuthCredential oturum açma kullanıcının nesneyi link yöntemiyle:

    Web sürümü 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 sürümü 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);
      });

Çağrısı Eğer link başarılı, kullanıcının yeni hesap anonim hesabın Firebase verilere erişebilir.

Sonraki adımlar

Artık kullanıcılar Firebase ile kimlik doğrulaması ki, sen kullanarak Firebase veritabanındaki verilere erişimlerini kontrol edebilirsiniz Firebase kuralları .