يمكنك استخدام مصادقة Firebase لإنشاء حسابات مجهولة مؤقتة واستخدامها للمصادقة مع Firebase. يمكن استخدام هذه الحسابات المجهولة المؤقتة للسماح للمستخدمين الذين لم يسجلوا بعد في تطبيقك بالعمل مع البيانات المحمية بقواعد الأمان. إذا قرر مستخدم مجهول الاشتراك في تطبيقك، فيمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب المجهول حتى يتمكن من مواصلة العمل مع بياناته المحمية في الجلسات المستقبلية.
قبل ان تبدأ
- أضف Firebase إلى مشروع JavaScript الخاص بك .
- إذا لم تكن قد قمت بعد بربط تطبيقك بمشروع Firebase الخاص بك، فقم بذلك من وحدة تحكم Firebase .
- تمكين المصادقة المجهولة:
- في وحدة تحكم Firebase ، افتح قسم المصادقة .
- في صفحة أساليب تسجيل الدخول ، قم بتمكين طريقة تسجيل الدخول المجهولة .
- اختياري : إذا قمت بترقية مشروعك إلى مصادقة Firebase باستخدام Identity Platform ، فيمكنك تمكين التنظيف التلقائي. عند تمكين هذا الإعداد، سيتم حذف الحسابات المجهولة الأقدم من 30 يومًا تلقائيًا. في المشاريع التي تم تمكين التنظيف التلقائي فيها، لن يتم احتساب المصادقة المجهولة ضمن حدود الاستخدام أو حصص الفواتير. راجع التنظيف التلقائي .
المصادقة مع Firebase بشكل مجهول
عندما يستخدم مستخدم قام بتسجيل الخروج إحدى ميزات التطبيق التي تتطلب المصادقة مع Firebase، قم بتسجيل دخول المستخدم بشكل مجهول عن طريق إكمال الخطوات التالية:
- اتصل بطريقة
signInAnonymously
:وهذا أيضًا هو المكان الذي يمكنك فيه اكتشاف الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، قم بإلقاء نظرة على Auth Reference Docs .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; // ... });
- إذا اكتملت طريقة
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 // ... } });
تحويل الحساب المجهول إلى حساب دائم
عندما يقوم مستخدم مجهول بالتسجيل في تطبيقك، قد ترغب في السماح له بمواصلة عمله باستخدام حسابه الجديد - على سبيل المثال، قد ترغب في جعل العناصر التي أضافها المستخدم إلى عربة التسوق الخاصة به قبل التسجيل متاحة في حسابه الجديد سلة التسوق الخاصة بالحساب. للقيام بذلك، أكمل الخطوات التالية:
- عندما يقوم المستخدم بالتسجيل، أكمل تدفق تسجيل الدخول لموفر مصادقة المستخدم حتى، على سبيل المثال لا الحصر، استدعاء إحدى أساليب
Auth.signInWith
. على سبيل المثال، احصل على رمز معرف Google المميز للمستخدم، أو رمز الوصول إلى Facebook، أو عنوان البريد الإلكتروني وكلمة المرور. احصل على
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);
قم بتمرير كائن
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 باستخدام Identity Platform ، فيمكنك تمكين التنظيف التلقائي في وحدة تحكم Firebase. عند تمكين هذه الميزة، فإنك تسمح لـ Firebase بحذف الحسابات المجهولة التي مضى عليها أكثر من 30 يومًا تلقائيًا. في المشاريع التي تم تمكين التنظيف التلقائي فيها، لن يتم احتساب المصادقة المجهولة ضمن حدود الاستخدام أو حصص الفواتير.
- قد يتم حذف أي حسابات مجهولة تم إنشاؤها بعد تمكين التنظيف التلقائي تلقائيًا في أي وقت بعد 30 يومًا من الإنشاء.
- ستكون الحسابات المجهولة التي تم إنشاؤها قبل تمكين التنظيف التلقائي مؤهلة للحذف التلقائي بدءًا من 30 يومًا بعد تمكين التنظيف التلقائي.
- إذا قمت بإيقاف تشغيل التنظيف التلقائي، فستظل أي حسابات مجهولة مجدولة للحذف مجدولة للحذف. لا يتم احتساب هذه الحسابات ضمن حدود الاستخدام أو حصص الفواتير.
- إذا قمت "بترقية" حساب مجهول عن طريق ربطه بأي طريقة تسجيل دخول، فلن يتم حذف الحساب تلقائيًا.
إذا كنت تريد معرفة عدد المستخدمين الذين سيتأثرون قبل تمكين هذه الميزة، وقمت بترقية مشروعك إلى مصادقة Firebase باستخدام Identity Platform ، فيمكنك التصفية حسب is_anon
في Cloud Logging .
الخطوات التالية
الآن بعد أن أصبح بإمكان المستخدمين المصادقة مع Firebase، يمكنك التحكم في وصولهم إلى البيانات الموجودة في قاعدة بيانات Firebase باستخدام قواعد Firebase .