يمكنك استخدام Firebase Authentication للسماح للمستخدمين بتسجيل الدخول إلى لعبتك باستخدام تطبيق واحد. أو طرق تسجيل دخول إضافية، بما في ذلك عنوان البريد الإلكتروني وكلمة المرور لتسجيل الدخول موفري الهوية الموحدة مثل "تسجيل الدخول بحساب Google" و"تسجيل الدخول إلى Facebook". هذا النمط يساعدك هذا البرنامج التعليمي في بدء استخدام Firebase Authentication من خلال توضيح كيفية إضافة عنوان البريد الإلكتروني وكلمة المرور لتسجيل الدخول إلى لعبتك.
قبل البدء
قبل أن تتمكّن من استخدام Firebase Authentication، عليك إجراء ما يلي:
سجِّل مشروعك على Unity واضبطه لاستخدام Firebase.
إذا كان مشروعك في Unity يستخدم Firebase حاليًا، يكون تسجيلها وإعدادها لمنصة Firebase
وإذا لم يكن لديك مشروع Unity، يمكنك تنزيل نموذج تطبيق.
أضِف حزمة تطوير البرامج (SDK) لنظام التشغيل Unity Firebase (خاصةً
FirebaseAuth.unitypackage
) إلى لمشروع Unity الخاص بك.
تجدر الإشارة إلى أنّ إضافة منصة Firebase إلى مشروع Unity تتضمّن مهامًا في كلّ من وحدة تحكّم Firebase وفي مشروع Unity المفتوح (على سبيل المثال، يمكنك تنزيل ملفات تهيئة Firebase من وحدة التحكم، ثم نقل إلى مشروع Unity).
تسجيل اشتراك مستخدمين جدد
إنشاء نموذج يسمح للمستخدمين الجدد بالتسجيل في لعبتك باستخدام عنوان بريدهم الإلكتروني
وعنوانك وكلمة مرور. إثبات صحة عنوان البريد الإلكتروني عندما يُكمل المستخدم النموذج
العنوان وكلمة المرور اللذين قدمهما المستخدم، ثم تمريرهما إلى
طريقة CreateUserWithEmailAndPasswordAsync
:
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);
});
تسجيل دخول المستخدمين الحاليين
إنشاء نموذج يسمح للمستخدمين الحاليين بتسجيل الدخول باستخدام عنوان بريدهم الإلكتروني
وكلمة المرور. عندما يُكمل المستخدم النموذج، يمكنك طلب
طريقة SignInWithEmailAndPasswordAsync
:
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);
});
ضبط معالِج حدث تغيير حالة المصادقة والحصول على بيانات المستخدمين
للردّ على أحداث تسجيل الدخول وتسجيل الخروج، عليك إرفاق معالج أحداث بالأحداث العامة. كائن المصادقة. يتم استدعاء هذا المعالج عند تسجيل دخول المستخدم تغيرات الحالة. لأنّ المعالِج لا يعمل إلا بعد أن يتم تشغيل كائن المصادقة بالكامل وبعد اكتمال أي مكالمات الشبكة، يكون من الأفضل للحصول على معلومات حول المستخدم الذي سجّل دخوله.
تسجيل معالج الحدث باستخدام StateChanged
لكائن FirebaseAuth
. عندما يسجِّل مستخدم الدخول بنجاح، يمكنك الحصول على معلومات حول المستخدم.
في معالج الحدث.
وأخيرًا، عندما يحتوي هذا الكائن على Destroy
، سيتم استدعاؤه تلقائيًا
OnDestroy
عليك محو مراجع عنصر المصادقة في OnDestroy
.
void InitializeFirebase() {
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
AuthStateChanged(this, null);
}
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null
&& auth.CurrentUser.IsValid();
if (!signedIn && user != null) {
DebugLog("Signed out " + user.UserId);
}
user = auth.CurrentUser;
if (signedIn) {
DebugLog("Signed in " + user.UserId);
displayName = user.DisplayName ?? "";
emailAddress = user.Email ?? "";
photoUrl = user.PhotoUrl ?? "";
}
}
}
void OnDestroy() {
auth.StateChanged -= AuthStateChanged;
auth = null;
}
الخطوات التالية
التعرُّف على كيفية إتاحة موفِّري الهوية الآخرين والضيف المجهول الحسابات: