با Firebase به صورت ناشناس با استفاده از جاوا اسکریپت احراز هویت

می‌توانید از Firebase Authentication برای ایجاد و استفاده از حساب‌های ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حساب‌های ناشناس موقت می‌توان استفاده کرد تا به کاربرانی که هنوز در برنامه شما ثبت نام نکرده‌اند اجازه دهند تا با داده‌های محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.

قبل از اینکه شروع کنی

  1. Firebase را به پروژه جاوا اسکریپت خود اضافه کنید .
  2. اگر هنوز برنامه خود را به پروژه Firebase متصل نکرده اید، این کار را از کنسول Firebase انجام دهید.
  3. احراز هویت ناشناس را فعال کنید:
    1. در کنسول Firebase ، بخش Auth را باز کنید.
    2. در صفحه Sign-in Methods ، روش ورود به سیستم ناشناس را فعال کنید.
    3. اختیاری : اگر پروژه خود را به Firebase Authentication با Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال می‌کنید، حساب‌های ناشناس قدیمی‌تر از 30 روز به‌طور خودکار حذف می‌شوند. در پروژه‌هایی که پاک‌سازی خودکار فعال است، احراز هویت ناشناس دیگر در محدودیت‌های استفاده یا سهمیه‌های صورت‌حساب حساب نمی‌شود. به پاکسازی خودکار مراجعه کنید.

با Firebase به صورت ناشناس احراز هویت

هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده می‌کند که نیاز به احراز هویت با Firebase دارد، با انجام مراحل زیر به طور ناشناس وارد کاربر شوید:

  1. متد signInAnonymously را فراخوانی کنید:

    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;
        // ...
      });
    این نیز جایی است که می توانید خطاها را پیدا کرده و کنترل کنید. برای فهرستی از کدهای خطا، به اسناد مرجع تأییدیه نگاهی بیندازید.
  2. اگر متد signInAnonymously بدون خطا کامل شود، مشاهده‌گر ثبت‌شده در onAuthStateChanged فعال می‌شود و می‌توانید داده‌های حساب کاربری ناشناس را از شی User دریافت کنید:

    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
        // ...
      }
    });

یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید

هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - به عنوان مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در جدید خود در دسترس قرار دهید. سبد خرید حساب برای این کار مراحل زیر را انجام دهید:

  1. هنگامی که کاربر ثبت نام می کند، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از روش های Auth.signInWith ، اما بدون احراز هویت، تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک، یا آدرس ایمیل و رمز عبور را دریافت کنید.
  2. یک AuthCredential برای ارائه دهنده احراز هویت جدید دریافت کنید:

    ورود به سیستم گوگل

    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);
    ورود به فیس بوک

    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);
    ورود به سیستم با رمز عبور ایمیل

    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);
  3. شی AuthCredential را به روش link کاربر ورود به سیستم ارسال کنید:

    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 با موفقیت انجام شود، حساب جدید کاربر می‌تواند به داده‌های Firebase حساب ناشناس دسترسی پیدا کند.

پاکسازی خودکار

اگر پروژه خود را به Firebase Authentication با Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال می‌کنید، به Firebase اجازه می‌دهید تا به‌طور خودکار حساب‌های ناشناس قدیمی‌تر از 30 روز را حذف کند. در پروژه‌هایی که پاکسازی خودکار فعال است، احراز هویت ناشناس جزو محدودیت‌های استفاده یا سهمیه‌های صورت‌حساب حساب نمی‌شود.

  • هر حساب ناشناس ایجاد شده پس از فعال کردن پاکسازی خودکار ممکن است هر زمان پس از 30 روز پس از ایجاد، به طور خودکار حذف شود.
  • حساب‌های ناشناس موجود 30 روز پس از فعال کردن پاک‌سازی خودکار واجد شرایط حذف خودکار خواهند بود.
  • اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناس برنامه‌ریزی‌شده برای حذف، برنامه‌ریزی شده برای حذف باقی می‌ماند.
  • اگر یک حساب ناشناس را با پیوند دادن آن به هر روش ورود به سیستم «ارتقا» کنید، حساب به طور خودکار حذف نخواهد شد.

اگر می‌خواهید قبل از فعال کردن این ویژگی ببینید چند کاربر تحت تأثیر قرار می‌گیرند و پروژه خود را به Firebase Authentication با Identity Platform ارتقا داده‌اید، می‌توانید با is_anon در Cloud Logging فیلتر کنید.

مراحل بعدی

اکنون که کاربران می توانند با Firebase احراز هویت کنند، می توانید با استفاده از قوانین Firebase دسترسی آنها به داده های پایگاه داده Firebase خود را کنترل کنید.