Catch up on everthing we announced at this year's Firebase Summit. Learn more

ตรวจสอบสิทธิ์กับ Firebase โดยใช้บัญชีที่ใช้รหัสผ่านโดยใช้ Unity

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

ก่อนจะเริ่ม

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

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

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

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

  • เพิ่ม Firebase สามัคคี SDK (เฉพาะ FirebaseAuth.unitypackage ) ให้กับโครงการความสามัคคีของคุณ

หมายเหตุว่าการเพิ่ม Firebase กับโครงการความสามัคคีของคุณเกี่ยวข้องกับงานทั้งใน Firebase คอนโซล และในโครงการความสามัคคีของคุณเปิด (ตัวอย่างเช่นคุณดาวน์โหลดไฟล์การกำหนดค่า Firebase จากคอนโซลแล้วย้ายไปลงในโครงการความสามัคคีของคุณ)

เข้า Firebase.Auth.FirebaseAuth ระดับ

FirebaseAuth ชั้นเป็นประตูสำหรับทุกการเรียก API มันเป็นเข้าถึงได้ผ่าน FirebaseAuth.DefaultInstance
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

สร้างบัญชีที่ใช้รหัสผ่าน

ในการสร้างบัญชีผู้ใช้ใหม่ด้วยรหัสผ่าน ให้ทำตามขั้นตอนต่อไปนี้ในรหัสลงชื่อเข้าใช้ของแอปของคุณ:

  1. เมื่อผู้ใช้ใหม่ลงชื่อสมัครใช้โดยใช้แบบฟอร์มลงทะเบียนของแอป ให้ทำตามขั้นตอนการตรวจสอบบัญชีใหม่ที่แอปต้องการ เช่น ตรวจสอบว่าพิมพ์รหัสผ่านของบัญชีใหม่อย่างถูกต้องและตรงตามข้อกำหนดด้านความซับซ้อนของคุณ
  2. สร้างบัญชีใหม่โดยการส่งผ่านที่อยู่อีเมลและรหัสผ่านของผู้ใช้ใหม่เพื่อ 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.FirebaseUser newUser = task.Result;
      Debug.LogFormat("Firebase user created successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

เข้าสู่ระบบผู้ใช้ด้วยที่อยู่อีเมลและรหัสผ่าน

ขั้นตอนในการลงชื่อเข้าใช้ผู้ใช้ด้วยรหัสผ่านจะคล้ายกับขั้นตอนในการสร้างบัญชีใหม่ ในฟังก์ชันลงชื่อเข้าใช้ของแอป ให้ทำดังต่อไปนี้:

  1. เมื่อมีการใช้ลงชื่อเข้าใช้แอปของคุณผ่านที่อยู่อีเมลและรหัสผ่านของผู้ใช้เพื่อ 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.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    
  2. นอกจากนี้คุณยังสามารถสร้างข้อมูลประจำตัวและเข้าสู่ระบบในเช่นขั้นตอนการทำงานอื่น ๆ :
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

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

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

  • ในปพลิเคชันของคุณคุณจะได้รับข้อมูลรายละเอียดของผู้ใช้พื้นฐานจาก Firebase.Auth.FirebaseUser วัตถุ:

    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 เรียลไทม์และการจัดเก็บเมฆ กฎการรักษาความปลอดภัย , คุณจะได้รับการลงนามใน ID ผู้ใช้ของผู้ใช้ที่ไม่ซ้ำกันจาก auth ตัวแปรและใช้ในการควบคุมสิ่งที่ข้อมูลที่เข้าถึงผู้ใช้สามารถ

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

ออกจากระบบผู้ใช้โทร SignOut() :

auth.SignOut();