میتوانید از Firebase Authentication برای ایجاد و استفاده از حسابهای ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حسابهای ناشناس موقت میتوان استفاده کرد تا به کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند اجازه دهند تا با دادههای محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.
قبل از شروع
- Firebase را به پروژه جاوا اسکریپت خود اضافه کنید .
- اگر هنوز برنامه خود را به پروژه Firebase متصل نکرده اید، این کار را از کنسول Firebase انجام دهید.
- فعال کردن احراز هویت ناشناس:
- در کنسول Firebase ، بخش Auth را باز کنید.
- در صفحه Sign-in Methods ، روش ورود به سیستم ناشناس را فعال کنید.
- اختیاری : اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال میکنید، حسابهای ناشناس قدیمیتر از 30 روز بهطور خودکار حذف میشوند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس دیگر در محدودیتهای استفاده یا سهمیههای صورتحساب حساب نمیشود. به پاکسازی خودکار مراجعه کنید.
با Firebase به صورت ناشناس احراز هویت
هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده میکند که نیاز به احراز هویت با Firebase دارد، با انجام مراحل زیر به طور ناشناس وارد کاربر شوید:
- متد
signInAnonymously
را فراخوانی کنید:این نیز جایی است که می توانید خطاها را پیدا کرده و کنترل کنید. برای فهرستی از کدهای خطا، به اسناد مرجع تأییدیه نگاهی بیندازید.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; // ... });
- اگر متد
signInAnonymously
بدون خطا کامل شود، مشاهدهگر ثبتشده درonAuthStateChanged
فعال میشود و میتوانید دادههای حساب کاربری ناشناس را از شیUser
دریافت کنید: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 // ... } });
یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید
هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - به عنوان مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در جدید خود در دسترس قرار دهید. سبد خرید حساب برای این کار مراحل زیر را انجام دهید:
- هنگامی که کاربر ثبت نام می کند، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از روش های
Auth.signInWith
، اما بدون احراز هویت، تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک، یا آدرس ایمیل و رمز عبور را دریافت کنید. یک
AuthCredential
برای ارائه دهنده احراز هویت جدید دریافت کنید:ورود به سیستم گوگل
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);
ورود به فیس بوک
Web
import { FacebookAuthProvider } from "firebase/auth"; const credential = FacebookAuthProvider.credential( response.authResponse.accessToken);
Web
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
ورود به سیستم با رمز عبور ایمیل
Web
import { EmailAuthProvider } from "firebase/auth"; const credential = EmailAuthProvider.credential(email, password);
Web
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
شیء
AuthCredential
را به روشlink
کاربر ورود به سیستم ارسال کنید: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
با موفقیت انجام شود، حساب جدید کاربر میتواند به دادههای Firebase حساب ناشناس دسترسی پیدا کند.
پاکسازی خودکار
اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال میکنید، به Firebase اجازه میدهید تا بهطور خودکار حسابهای ناشناس قدیمیتر از 30 روز را حذف کند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس جزو محدودیتهای استفاده یا سهمیههای صورتحساب حساب نمیشود.
- هر حساب ناشناس ایجاد شده پس از فعال کردن پاکسازی خودکار ممکن است هر زمان پس از 30 روز پس از ایجاد، به طور خودکار حذف شود.
- حسابهای ناشناس موجود 30 روز پس از فعال کردن پاکسازی خودکار واجد شرایط حذف خودکار خواهند بود.
- اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناس برنامهریزیشده برای حذف، برنامهریزیشده برای حذف باقی میماند.
- اگر یک حساب ناشناس را با پیوند دادن آن به هر روش ورود به سیستم «ارتقا» کنید، حساب به طور خودکار حذف نخواهد شد.
اگر میخواهید قبل از فعال کردن این ویژگی ببینید چند کاربر تحت تأثیر قرار میگیرند و پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید با is_anon
در Cloud Logging فیلتر کنید.
مراحل بعدی
اکنون که کاربران می توانند با Firebase احراز هویت کنند، می توانید با استفاده از قوانین Firebase دسترسی آنها به داده های پایگاه داده Firebase خود را کنترل کنید.