Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

قبل ان تبدأ

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

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

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

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

    إصدار الويب 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;
        // ...
      });

    إصدار الويب 8

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

    إصدار الويب 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
        // ...
      }
    });

    إصدار الويب 8

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

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

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

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

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

    إصدار الويب 9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    إصدار الويب 8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    تسجيل الدخول الى الفيسبوك

    إصدار الويب 9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    إصدار الويب 8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    تسجيل الدخول عبر البريد الإلكتروني وكلمة المرور

    إصدار الويب 9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    إصدار الويب 8

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

    إصدار الويب 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);
      });

    إصدار الويب 8

    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، يمكنك التحكم في وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase .