Firebase ile kimlik doğrulamak için Firebase Authentication kullanarak geçici anonim hesaplar oluşturabilir ve 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 gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilmesi için oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz.
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ştirme:
- Firebase konsolunda Güvenlik > Kimlik doğrulama'ya gidin.
- Oturum açma yöntemi sekmesinde Anonim oturum açma sağlayıcısını 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 etkin olduğu 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
Uygulamanıza anonim olarak kaydolan kullanıcıların 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 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 şifreyle 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 olarak silinmeye uygun hale gelir.
- Otomatik temizlemeyi devre dışı bırakırsanız silinmesi planlanan tüm anonim hesaplar silinmeye devam eder.
- 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'e göre 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.