Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

เริ่มต้นด้วยการตรวจสอบสิทธิ์ Firebase ใน Unity

คุณสามารถใช้ Firebase Authentication เพื่ออนุญาตให้ผู้ใช้ลงชื่อเข้าใช้เกมของคุณโดยใช้วิธีการลงชื่อเข้าใช้อย่างน้อยหนึ่งวิธีรวมถึงที่อยู่อีเมลและการลงชื่อเข้าใช้ด้วยรหัสผ่านและผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์เช่น Google Sign-in และ Facebook Login บทแนะนำนี้ช่วยให้คุณเริ่มต้นใช้งาน Firebase Authentication โดยแสดงวิธีเพิ่มที่อยู่อีเมลและการลงชื่อเข้าใช้ด้วยรหัสผ่านในเกมของคุณ

ก่อนที่คุณจะเริ่ม

ก่อนที่คุณจะใช้การ ตรวจสอบสิทธิ์ Firebase ได้ คุณต้อง:

  • ลงทะเบียนโครงการ Unity ของคุณและกำหนดค่าให้ใช้ Firebase

    • หากโครงการ Unity ของคุณใช้ Firebase อยู่แล้วแสดงว่ามีการลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว

    • หากคุณไม่มีโปรเจ็กต์ Unity คุณสามารถดาวน์โหลด แอปตัวอย่าง ได้

  • เพิ่ม Firebase Unity SDK (โดยเฉพาะ 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.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);
});

ตั้งค่าตัวจัดการเหตุการณ์การเปลี่ยนแปลงสถานะการพิสูจน์ตัวตนและรับข้อมูลผู้ใช้

ในการตอบสนองต่อเหตุการณ์การลงชื่อเข้าใช้และการออกจากระบบให้แนบตัวจัดการเหตุการณ์เข้ากับออบเจ็กต์การรับรองความถูกต้องส่วนกลาง ตัวจัดการนี้จะถูกเรียกเมื่อใดก็ตามที่สถานะการลงชื่อเข้าใช้ของผู้ใช้เปลี่ยนไป เนื่องจากตัวจัดการจะทำงานหลังจากอ็อบเจ็กต์การพิสูจน์ตัวตนเริ่มต้นอย่างสมบูรณ์และหลังจากการโทรผ่านเครือข่ายเสร็จสิ้นแล้วจึงเป็นที่ที่ดีที่สุดในการรับข้อมูลเกี่ยวกับผู้ใช้ที่ลงชื่อเข้าใช้

ลงทะเบียนตัวจัดการเหตุการณ์โดยใช้ฟิลด์ StateChanged ของออบเจ็กต์ FirebaseAuth เมื่อผู้ใช้ลงชื่อเข้าใช้สำเร็จคุณจะได้รับข้อมูลเกี่ยวกับผู้ใช้ในตัวจัดการเหตุการณ์

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

ขั้นตอนถัดไป

เรียนรู้วิธีเพิ่มการสนับสนุนสำหรับผู้ให้บริการข้อมูลประจำตัวอื่น ๆ และบัญชีแขกที่ไม่ระบุชื่อ: