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

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

قبل البدء

  1. أضِف Firebase إلى مشروع JavaScript.
  2. إذا لم تكن قد ربطت تطبيقك بمشروعك على Firebase، يمكنك إجراء ذلك من وحدة تحكّم Firebase.
  3. تفعيل المصادقة المجهولة:
    1. في وحدة تحكُّم Firebase، افتح قسم المصادقة.
    2. في صفحة طرق تسجيل الدخول، فعِّل الخيار مجهول الهوية. تسجيل الدخول.
    3. اختياري: إذا قمت بترقية مشروعك إلى Firebase Authentication with Identity Platform، يمكنك تفعيل ميزة "إزالة البرامج غير المرغوب فيها تلقائيًا". فعندما بعد تفعيل هذا الإعداد، سيتم تلقائيًا تحديد الحسابات المجهولة الهوية التي مرّ عليها أكثر من 30 يومًا حذف. في المشاريع التي تم فيها تفعيل ميزة "التنظيف التلقائي"، لن يتم تفعيل المصادقة المجهولة بعد ذلك يتم احتسابها ضمن حدود الاستخدام أو حصص الفوترة. عرض إزالة البرامج غير المرغوب فيها تلقائيًا:

المصادقة باستخدام Firebase بهوية مجهولة

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

  1. عليك استدعاء طريقة 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;
        // ...
      });
    ويمكنك هنا أيضًا رصد الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، يمكنك الاطّلاع على المستندات المرجعية للمصادقة.
  2. في حال تم إكمال طريقة 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
        // ...
      }
    });

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

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

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

    تسجيل الدخول بحساب Google

    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);
    تسجيل الدخول إلى Facebook

    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);
  3. تمرير الكائن 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 في السحابة الإلكترونية التسجيل:

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

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