يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بالمصادقة باستخدام Firebase باستخدام عناوين البريد الإلكتروني وكلمات المرور الخاصة بهم ، ولإدارة الحسابات المستندة إلى كلمة مرور التطبيق.
قبل ان تبدأ
قبل أن تتمكن من استخدام مصادقة Firebase ، تحتاج إلى:
سجل مشروع Unity الخاص بك وقم بتكوينه لاستخدام Firebase.
إذا كان مشروع Unity الخاص بك يستخدم Firebase بالفعل ، فهذا يعني أنه تم تسجيله بالفعل وتهيئته لـ Firebase.
إذا لم يكن لديك مشروع Unity ، فيمكنك تنزيل نموذج للتطبيق .
أضف Firebase Unity SDK (على وجه التحديد ،
FirebaseAuth.unitypackage
) إلى مشروع Unity الخاص بك.
لاحظ أن إضافة Firebase إلى مشروع Unity الخاص بك يتضمن مهامًا في كل من وحدة تحكم Firebase وفي مشروع Unity المفتوح (على سبيل المثال ، يمكنك تنزيل ملفات تهيئة Firebase من وحدة التحكم ، ثم نقلها إلى مشروع الوحدة الخاص بك).
قم بالوصول إلى فئة Firebase.Auth.FirebaseAuth
فئة FirebaseAuth
هي البوابة لجميع استدعاءات واجهة برمجة التطبيقات. يمكن الوصول إليه من خلال FirebaseAuth.DefaultInstance .Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
قم بإنشاء حساب مستند إلى كلمة المرور
لإنشاء حساب مستخدم جديد بكلمة مرور ، أكمل الخطوات التالية في رمز تسجيل الدخول لتطبيقك:
- عندما يقوم مستخدم جديد بالتسجيل باستخدام نموذج الاشتراك في التطبيق الخاص بك ، أكمل أي خطوات التحقق من صحة الحساب الجديدة التي يتطلبها تطبيقك ، مثل التحقق من أن كلمة مرور الحساب الجديد تمت كتابتها بشكل صحيح وتفي بمتطلبات التعقيد الخاصة بك.
- قم بإنشاء حساب جديد عن طريق تمرير عنوان البريد الإلكتروني وكلمة المرور للمستخدم الجديد إلى
FirebaseAuth.CreateUserWithEmailAndPassword
:auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } // Firebase user has been created. Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("Firebase user created successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
سجّل دخول مستخدم بعنوان بريد إلكتروني وكلمة مرور
تشبه خطوات تسجيل دخول مستخدم بكلمة مرور خطوات إنشاء حساب جديد. في وظيفة تسجيل الدخول لتطبيقك ، قم بما يلي:
- عندما يقوم المستخدم بتسجيل الدخول إلى تطبيقك ، قم بتمرير عنوان البريد الإلكتروني وكلمة المرور للمستخدم إلى
FirebaseAuth.SignInWithEmailAndPassword
auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
- يمكنك أيضًا إنشاء بيانات الاعتماد وتسجيل الدخول مثل مهام سير العمل الأخرى:
Firebase.Auth.Credential credential = Firebase.Auth.EmailAuthProvider.GetCredential(email, password); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
موصى به: قم بتمكين حماية تعداد البريد الإلكتروني
تؤدي بعض طرق مصادقة Firebase التي تأخذ عناوين البريد الإلكتروني كمعلمات إلى أخطاء محددة إذا كان عنوان البريد الإلكتروني غير مسجَّل عندما يجب تسجيله (على سبيل المثال ، عند تسجيل الدخول باستخدام عنوان بريد إلكتروني وكلمة مرور) ، أو تسجيله عندما يجب أن يكون غير مستخدم (على سبيل المثال ، عند تغيير عنوان البريد الإلكتروني للمستخدم). في حين أن هذا يمكن أن يكون مفيدًا لاقتراح علاجات محددة للمستخدمين ، إلا أنه يمكن أيضًا إساءة استخدامه من قبل الجهات الضارة لاكتشاف عناوين البريد الإلكتروني المسجلة من قبل المستخدمين لديك.
للتخفيف من هذه المخاطر ، نوصيك بتمكين حماية تعداد البريد الإلكتروني لمشروعك باستخدام أداة Google Cloud gcloud
. لاحظ أن تمكين هذه الميزة يغير سلوك الإبلاغ عن أخطاء Firebase Authentication: تأكد من أن تطبيقك لا يعتمد على أخطاء أكثر تحديدًا.
الخطوات التالية
بعد أن يقوم المستخدم بتسجيل الدخول لأول مرة ، يتم إنشاء حساب مستخدم جديد وربطه ببيانات الاعتماد - أي اسم المستخدم وكلمة المرور أو رقم الهاتف أو معلومات موفر المصادقة - المستخدم الذي قام بتسجيل الدخول باستخدام. يتم تخزين هذا الحساب الجديد كجزء من مشروع Firebase الخاص بك ، ويمكن استخدامه لتحديد هوية مستخدم عبر كل تطبيق في مشروعك ، بغض النظر عن كيفية تسجيل المستخدم للدخول.
في تطبيقاتك ، يمكنك الحصول على معلومات الملف الشخصي الأساسية للمستخدم من
Firebase.Auth.FirebaseUser
object:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user's Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
في قاعدة بيانات Firebase Realtime وقواعد أمان التخزين السحابي ، يمكنك الحصول على معرف المستخدم الفريد للمستخدم الذي قام بتسجيل الدخول من متغير
auth
، واستخدامه للتحكم في البيانات التي يمكن للمستخدم الوصول إليها.
يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام موفري مصادقة متعددين عن طريق ربط بيانات اعتماد موفر المصادقة بحساب مستخدم حالي.
لتسجيل خروج مستخدم ، اتصل SignOut()
:
auth.SignOut();