Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

ابدأ باستخدام مصادقة Firebase في الوحدة

يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بتسجيل الدخول إلى لعبتك باستخدام طريقة أو أكثر من طرق تسجيل الدخول ، بما في ذلك عنوان البريد الإلكتروني وتسجيل الدخول بكلمة المرور وموفري الهوية الموحدة مثل تسجيل الدخول إلى Google وتسجيل الدخول إلى Facebook. يساعدك هذا البرنامج التعليمي على بدء استخدام مصادقة Firebase من خلال توضيح كيفية إضافة عنوان البريد الإلكتروني وتسجيل الدخول بكلمة المرور إلى لعبتك.

قبل ان تبدأ

قبل أن تتمكن من استخدام مصادقة Firebase ، تحتاج إلى:

  • سجل مشروع الوحدة الخاص بك وقم بتكوينه لاستخدام Firebase.

    • إذا كان مشروع Unity الخاص بك يستخدم Firebase بالفعل ، فقد تم تسجيله وتهيئته لـ Firebase.

    • إذا لم يكن لديك مشروع Unity ، يمكنك تنزيل تطبيق نموذجي .

  • أضف حزمة Firebase Unity SDK (على وجه التحديد ، FirebaseAuth.unitypackage ) إلى مشروع الوحدة لديك.

لاحظ أن إضافة Firebase إلى مشروع Unity الخاص بك يتضمن مهامًا في وحدة تحكم Firebase وفي مشروع Unity المفتوح (على سبيل المثال ، يمكنك تنزيل ملفات تكوين Firebase من وحدة التحكم ، ثم نقلها إلى مشروع Unity).

تسجيل مستخدمين جدد

إنشاء نموذج يسمح للمستخدمين الجدد بالتسجيل في لعبتك باستخدام عنوان بريدهم الإلكتروني وكلمة مرور. عندما يكمل المستخدم النموذج ، تحقق من عنوان البريد الإلكتروني وكلمة المرور اللذين CreateUserWithEmailAndPasswordAsync المستخدم ، ثم CreateUserWithEmailAndPasswordAsync طريقة 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});
 

تعيين معالج حدث تغيير حالة المصادقة والحصول على بيانات المستخدم

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

تسجيل معالج الحدث باستخدام FirebaseAuth الكائن StateChanged المجال. عندما يقوم المستخدم بتسجيل الدخول بنجاح ، يمكنك الحصول على معلومات حول المستخدم في معالج الأحداث.

 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;
    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 ?? "";
    }
  }
}
 

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

تعرف على كيفية إضافة دعم لموفري الهوية الآخرين وحسابات الضيف المجهولة: