Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

ابدأ مع مصادقة Firebase في الوحدة

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

قبل ان تبدأ

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

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

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

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

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

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

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

أنشئ نموذجًا يسمح للمستخدمين الجدد بالتسجيل في لعبتك باستخدام عنوان بريدهم الإلكتروني وكلمة مرور. عندما يقوم مستخدم بإكمال النموذج التحقق من صحة عنوان البريد الإلكتروني وكلمة المرور المقدمة من قبل المستخدم، ثم تمريرها إلى 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 ?? "";
    }
  }
}

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

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