ตรวจสอบสิทธิ์ด้วย Firebase แบบไม่ระบุตัวตนโดยใช้ Unity

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

ก่อนเริ่มต้น

  1. ก่อนที่จะใช้ Firebase Authentication คุณต้องเพิ่ม Firebase Unity SDK (โดยเฉพาะ FirebaseAuth.unitypackage) ลงในโปรเจ็กต์ Unity

    ดูวิธีการโดยละเอียดสำหรับขั้นตอนการตั้งค่าเริ่มต้นเหล่านี้ได้ใน เพิ่ม Firebase ลงใน โปรเจ็กต์ Unity

  2. หากยังไม่ได้เชื่อมต่อแอปกับโปรเจ็กต์ Firebase ให้เชื่อมต่อจากFirebase Console
  3. เปิดใช้การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ
    1. เปิดส่วนการตรวจสอบสิทธิ์ในคอนโซล Firebase
    2. ในหน้าวิธีการลงชื่อเข้าใช้ ให้เปิดใช้ไม่ระบุชื่อ วิธีการลงชื่อเข้าใช้
    3. ไม่บังคับ: หากอัปเกรดโปรเจ็กต์เป็น Firebase Authentication with Identity Platform คุณจะเปิดใช้การล้างข้อมูลอัตโนมัติได้ เมื่อ คุณเปิดใช้การตั้งค่านี้ ระบบจะลบบัญชีที่ไม่ระบุตัวตนที่เก่ากว่า 30 วันโดยอัตโนมัติ ในโปรเจ็กต์ที่เปิดใช้การล้างข้อมูลอัตโนมัติ การตรวจสอบสิทธิ์แบบไม่ระบุตัวตนจะไม่นับรวมในโควต้าการใช้งานหรือโควต้าการเรียกเก็บเงินอีกต่อไป ดู การล้างข้อมูลอัตโนมัติ

ตรวจสอบสิทธิ์ด้วย Firebase โดยไม่ระบุตัวตน

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

FirebaseAuth คลาสเป็นเกตเวย์สำหรับการเรียก API ทั้งหมด โดยเข้าถึงได้ผ่าน FirebaseAuth.DefaultInstance
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. โทรหา Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync 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);
});

เปลี่ยนบัญชีที่ไม่ระบุตัวตนเป็นบัญชีถาวร

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

  1. เมื่อผู้ใช้ลงชื่อสมัครใช้ ให้ทำขั้นตอนการลงชื่อเข้าใช้สำหรับผู้ให้บริการตรวจสอบสิทธิ์ของ ผู้ใช้ให้เสร็จสมบูรณ์ โดยไม่ต้องเรียกใช้เมธอด Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync ใดเมธอดหนึ่ง เช่น รับโทเค็นรหัส Google ของผู้ใช้ โทเค็นเพื่อการเข้าถึง Facebook หรืออีเมลและรหัสผ่าน
  2. รับ Firebase.Auth.Credential สำหรับผู้ให้บริการตรวจสอบสิทธิ์รายใหม่

  3. ส่งออบเจ็กต์ Firebase.Auth.Credential ไปยังเมธอด LinkWithCredentialAsync ของผู้ใช้ที่ลงชื่อเข้าใช้

หากการเรียกใช้ LinkWithCredentialAsync สำเร็จ บัญชีใหม่ของผู้ใช้จะเข้าถึงข้อมูล Firebase ของบัญชีที่ไม่ระบุตัวตนได้

การล้างข้อมูลอัตโนมัติ

หากอัปเกรดโปรเจ็กต์เป็น Firebase Authentication with Identity Platform แล้ว คุณจะ เปิดใช้การล้างข้อมูลอัตโนมัติในคอนโซล Firebase ได้ เมื่อเปิดใช้ฟีเจอร์นี้ คุณจะอนุญาตให้ Firebase ลบบัญชีที่ไม่ระบุตัวตนที่มีอายุนานกว่า 30 วันโดยอัตโนมัติ ในโปรเจ็กต์ที่เปิดใช้การล้างข้อมูลอัตโนมัติ การตรวจสอบสิทธิ์แบบไม่ระบุตัวตนจะไม่นับรวมในโควต้าการใช้งานหรือโควต้าการเรียกเก็บเงิน

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

หากต้องการดูจำนวนผู้ใช้ที่จะได้รับผลกระทบก่อนเปิดใช้ฟีเจอร์นี้ และคุณได้อัปเกรดโปรเจ็กต์เป็น Firebase Authentication with Identity Platform แล้ว คุณสามารถกรองตามis_anonใน Cloud Logging ได้

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

เมื่อผู้ใช้สามารถตรวจสอบสิทธิ์ด้วย Firebase ได้แล้ว คุณจะควบคุมสิทธิ์เข้าถึงข้อมูลในฐานข้อมูล Firebase ได้โดยใช้ กฎ Firebase