Firebase ile kimlik doğrulamak için geçici anonim hesaplar oluşturmak ve kullanmak üzere Firebase Authentication özelliğini kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına olanak tanımak için kullanılabilir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz. Böylece kullanıcı, gelecekteki oturumlarda korumalı verileriyle çalışmaya devam edebilir.
Başlamadan önce
- Firebase'i JavaScript projenize ekleyin.
- Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolundan yapın.
- Anonim kimlik doğrulamayı etkinleştirin:
- Firebase konsolunda Auth (Kimlik Doğrulama) bölümünü açın.
- Oturum Açma Yöntemleri sayfasında Anonim oturum açma yöntemini etkinleştirin.
- İsteğe bağlı: Projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz otomatik temizlemeyi etkinleştirebilirsiniz. Bu ayarı etkinleştirdiğinizde 30 günden eski anonim hesaplar otomatik olarak silinir. Otomatik temizleme özelliğinin etkinleştirildiği projelerde anonim kimlik doğrulama artık kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecek. Otomatik temizleme başlıklı makaleyi inceleyin.
Firebase ile anonim olarak kimlik doğrulama
Oturumu kapalı bir kullanıcı, Firebase ile kimlik doğrulama gerektiren bir uygulama özelliği kullandığında aşağıdaki adımları uygulayarak kullanıcının oturumunu anonim olarak açın:
signInAnonymouslyyöntemini çağırın:Hataları yakalayıp işleyebileceğiniz yer de burasıdır. Hata kodlarının listesi için Auth Reference Docs'a göz atı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; // ... });
signInAnonymouslyyöntemi hatasız tamamlanırsaonAuthStateChangediçinde kaydedilen gözlemci tetiklenir ve anonim kullanıcının hesap verileriniUsernesnesinden 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 // ... } });
Anonim hesabı kalıcı hesaba dönüştürme
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesabıyla çalışmaya devam etmesine izin vermek isteyebilirsiniz. Örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesabının alışveriş sepetinde kullanılabilir hale getirebilirsiniz. Bunun için aşağıdaki adımları uygulayın:
- Kullanıcı kaydolduğunda, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını
Auth.signInWithyöntemlerinden birini çağırma işlemi hariç olmak üzere tamamlayın. Örneğin, kullanıcının Google kimlik jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın. Yeni kimlik doğrulama sağlayıcısı için
AuthCredentialalı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 ile 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 ve şifre ile oturum açma
Web
import { EmailAuthProvider } from "firebase/auth"; const credential = EmailAuthProvider.credential(email, password);
Web
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
AuthCredentialnesnesini, oturum açan kullanıcınınlinkyöntemine iletin: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 Firebase konsolunda otomatik temizlemeyi etkinleştirebilirsiniz. Bu özelliği etkinleştirdiğinizde Firebase'in 30 günden eski anonim hesapları otomatik olarak silmesine izin vermiş olursunuz. Otomatik temizleme özelliğinin etkin olduğu projelerde, anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilmez.
- Otomatik temizleme etkinleştirildikten sonra oluşturulan anonim hesaplar, oluşturulmalarından 30 gün sonra herhangi bir zamanda otomatik olarak silinebilir.
- Mevcut anonim hesaplar, otomatik temizleme etkinleştirildikten 30 gün sonra otomatik silme işlemine tabi tutulur.
- Otomatik temizlemeyi devre dışı bırakırsanız silinmesi planlanan tüm anonim hesaplar silinmek üzere planlanmış olarak kalır.
- Anonim bir hesabı herhangi bir oturum açma yöntemine bağlayarak "yükseltirseniz" hesap 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'ye yükselttiyseniz Cloud Logging'de is_anon ile filtreleyebilirsiniz.
Sonraki adımlar
Kullanıcılar artık Firebase ile kimliklerini doğrulayabildiğinden Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.