Firebase ile kimlik doğrulaması yapmak için 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ı tarafından korunan verilerle çalışmasına izin vermek 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 .
Sen 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ştir:
- Firebase konsolunda 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'a yükselttiyseniz otomatik temizlemeyi etkinleştirebilirsiniz. Bu ayarı etkinleştirdiğinizde, 30 günden eski anonim hesaplar otomatik olarak silinecektir. Otomatik temizlemenin etkinleştirildiği projelerde, anonim kimlik doğrulama artık kullanım limitlerine veya faturalandırma kotalarına dahil edilmeyecektir. Bkz. Otomatik temizleme .
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ının oturumunu anonim olarak açın:
-
signInAnonymously
yöntemini çağırın:Burası aynı zamanda hataları yakalayıp işleyebileceğiniz yerdir. Hata kodlarının bir listesi için Kimlik Doğrulama Referans Dokümanlarına bakın.Web modular API
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 namespaced API
firebase.auth().signInAnonymously() .then(() => { // Signed in.. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
-
signInAnonymously
yöntemi hatasız tamamlanırsa,onAuthStateChanged
kayıtlı gözlemci tetiklenir ve anonim kullanıcının hesap verileriniUser
nesnesinden alabilirsiniz:Web modular API
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 namespaced API
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 bir hesabı kalıcı bir hesaba dönüştürün
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesabıyla çalışmalarına devam etmesine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği ürünleri yeni hesabında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:
- Kullanıcı kaydolduğunda, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını
Auth.signInWith
yöntemlerinden birini çağırana kadar tamamlayın, ancak buna dahil etmeyin. Örneğin, kullanıcının Google Kimliği jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın. Yeni kimlik doğrulama sağlayıcısı için bir
AuthCredential
alın:Google'da Oturum Açma
Web modular API
import { GoogleAuthProvider } from "firebase/auth"; const credential = GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
Web namespaced API
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
Facebook Girişi
Web modular API
import { FacebookAuthProvider } from "firebase/auth"; const credential = FacebookAuthProvider.credential( response.authResponse.accessToken);
Web namespaced API
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
E-posta-şifre girişi
Web modular API
import { EmailAuthProvider } from "firebase/auth"; const credential = EmailAuthProvider.credential(email, password);
Web namespaced API
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
AuthCredential
nesnesini, oturum açan kullanıcınınlink
yöntemine iletin:Web modular API
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 namespaced API
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'a 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 temizlemenin etkinleştirildiği projelerde, anonim kimlik doğrulama, kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecektir.
- Otomatik temizleme etkinleştirildikten sonra oluşturulan tüm anonim hesaplar, oluşturulduktan 30 gün sonra herhangi bir zamanda otomatik olarak silinebilir.
- Otomatik temizleme etkinleştirilmeden önce oluşturulan anonim hesaplar, otomatik temizleme etkinleştirildikten 30 gün sonra otomatik olarak silinmeye uygun olacaktır.
- Otomatik temizlemeyi kapatırsanız, silinmesi programlanan tüm anonim hesaplar, silinmek üzere programlanmış olarak kalır. Bu hesaplar, kullanım limitlerine veya faturalandırma kotalarına dahil edilmez.
- 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'a yükselttiyseniz, Cloud Logging'de is_anon
göre filtreleme yapabilirsiniz.
Sonraki adımlar
Artık kullanıcılar Firebase ile kimlik doğrulaması yapabildiğine göre, Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.