يمكنك استخدام Firebase Authentication لإنشاء حسابات مؤقتة غير معروفة والتحقّق من الهوية باستخدام Firebase. يمكن استخدام هذه الحسابات المؤقتة غير المحددة الهوية للسماح للمستخدمين الذين لم يشتركوا بعد في تطبيقك بالعمل مع البيانات المحمية بقواعد الأمان. إذا قرر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب مجهول الهوية حتى يتمكّن من مواصلة العمل باستخدام بياناته المحمية في جلسات المستقبل.
قبل البدء
- أضِف Firebase إلى مشروع JavaScript.
- إذا لم يسبق لك ربط تطبيقك بمشروعك على Firebase، يمكنك إجراء ذلك من وحدة تحكّم Firebase.
- تفعيل المصادقة المجهولة:
- في وحدة تحكّم Firebase، افتح قسم Auth.
- في صفحة طُرق تسجيل الدخول، فعِّل طريقة تسجيل الدخول غير المحدَّد الهوية.
- اختياري: إذا كنت قد أجريت ترقية لمشروعك إلى Firebase Authentication with Identity Platform، يمكنك تفعيل ميزة "التنظيف التلقائي". عند تفعيل هذا الإعداد، سيتم تلقائيًا حذف الحسابات المجهولة التي مرّ عليها أكثر من 30 يومًا. في المشاريع التي تم تفعيل ميزة "التنظيف التلقائي" فيها، لن يتم احتساب مصادقة الهوية المجهولة ضمن حدود الاستخدام أو حصص الفوترة. اطّلِع على التنظيف التلقائي.
المصادقة مع Firebase بشكل مجهول
عندما يستخدم مستخدم مسجَّل الخروج ميزة في التطبيق تتطلّب المصادقة باستخدام Firebase، سجِّل دخول المستخدم بشكل مجهول من خلال إكمال الخطوات التالية:
- استدعاء الطريقة
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; // ... });
- إذا اكتملت طريقة
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 // ... } });
تحويل حساب مجهول إلى حساب دائم
عندما يشترك مستخدم مجهول الهوية في تطبيقك، قد تريد السماح له باستمرار عمله باستخدام حسابه الجديد. على سبيل المثال، يمكنك إتاحة السلع التي أضافها المستخدم إلى سلة التسوّق قبل الاشتراك في سلة التسوّق الخاصة بحسابه الجديد. لإجراء ذلك، يُرجى إكمال الخطوات التالية:
- عندما يشترك المستخدم، أكمِل عملية تسجيل الدخول لمقدّم
المصادقة للمستخدم إلى أن تصل إلى استدعاء إحدى methods
Auth.signInWith
، ولكن بدون تضمين ذلك. على سبيل المثال، يمكنك الحصول على رمز تعريف المستخدم على Google رمز الوصول إلى Facebook أو عنوان البريد الإلكتروني وكلمة المرور. الحصول على
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);
نقْل عنصر
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.