مصادقة مع Firebase بشكل مجهول باستخدام JavaScript

يمكنك استخدام مصادقة Firebase لإنشاء واستخدام حسابات مؤقتة مجهولة المصدر للمصادقة مع Firebase. يمكن استخدام هذه الحسابات المجهولة المؤقتة للسماح للمستخدمين الذين لم يسجلوا بعد في تطبيقك بالعمل مع البيانات المحمية بقواعد الأمان. إذا قرر مستخدم مجهول للتوقيع على التطبيق الخاص بك، يمكنك ربط على بيانات اعتماد تسجيل الدخول إلى الحساب المجهول حتى يتمكنوا من مواصلة العمل مع البيانات المحمية في الدورات المقبلة.

قبل ان تبدأ

  1. إضافة Firebase لمشروع جافا سكريبت .
  2. إذا لم تكن متصلا بعد تطبيقك لمشروع Firebase قم بذلك من وحدة التحكم Firebase .
  3. تمكين المصادقة المجهولة:
    1. في وحدة التحكم Firebase ، فتح الباب أصيل.
    2. في صفحة تسجيل الدخول، طرق، تمكين تسجيل الدخول المجهول الأسلوب.

مصادقة مع Firebase بشكل مجهول

عندما يستخدم مستخدم سجّل الخروج ميزة تطبيق تتطلب مصادقة مع Firebase ، سجّل دخول المستخدم كمجهول من خلال إكمال الخطوات التالية:

  1. استدعاء signInAnonymously الأسلوب:

    الويب v8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

    الويب الإصدار 9

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });
    هذا هو المكان الذي يمكنك من خلاله اكتشاف الأخطاء ومعالجتها. للحصول على قائمة من رموز الخطأ إلقاء نظرة على مستندات المرجعي أصيل .
  2. إذا كان signInAnonymously يكمل طريقة دون خطأ، المراقب مسجلة في onAuthStateChanged من شأنه أن يؤدي ويمكنك الحصول على بيانات حساب المستخدم المجهول لمن User وجوه:

    الويب v8

    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/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    الويب الإصدار 9

    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/firebase.User
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

تحويل حساب مجهول إلى حساب دائم

عندما يقوم مستخدم مجهول بالتسجيل في تطبيقك ، فقد ترغب في السماح له بمواصلة عمله باستخدام حسابه الجديد - على سبيل المثال ، قد ترغب في جعل العناصر التي أضافها المستخدم إلى عربة التسوق الخاصة به قبل أن يقوم بالتسجيل متوفرة في حسابه الجديد. عربة تسوق الحساب. للقيام بذلك ، أكمل الخطوات التالية:

  1. عندما يقوم المستخدم بالتسجيل، استكمال تسجيل الدخول تدفق لموفر المصادقة المستخدم حتى، ولكن ليس بما في ذلك، استدعاء أحد Auth.signInWith الأساليب. على سبيل المثال ، احصل على رمز معرف Google الخاص بالمستخدم أو رمز الوصول إلى Facebook أو عنوان البريد الإلكتروني وكلمة المرور.
  2. الحصول على AuthCredential لموفر المصادقة الجديد:

    جوجل تسجيل الدخول

    الويب v8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    الويب الإصدار 9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    تسجيل الدخول الى الفيسبوك

    الويب v8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    الويب الإصدار 9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    تسجيل الدخول إلى البريد الإلكتروني وكلمة المرور

    الويب v8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);

    الويب الإصدار 9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);
  3. تمرير AuthCredential الكائن إلى تسجيل الدخول المستخدم link الأسلوب:

    الويب v8

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

    الويب الإصدار 9

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

اذا كانت الدعوة إلى link نجحت، يمكن حساب جديد للمستخدم الوصول إلى البيانات Firebase الحساب المجهول ل.

الخطوات التالية

الآن يمكن للمستخدمين مصادقة مع Firebase، يمكنك التحكم في وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase .