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

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

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

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

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

  2. หากยังไม่ได้เชื่อมต่อแอปกับโปรเจ็กต์ Firebase ให้เชื่อมต่อจากคอนโซล Firebase
  3. วิธีเปิดใช้การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ
    1. ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์
    2. ในหน้าวิธีการลงชื่อเข้าใช้ ให้เปิดใช้วิธีการลงชื่อเข้าใช้แบบไม่ระบุตัวตน
    3. ไม่บังคับ: หากอัปเกรดโปรเจ็กต์เป็นการตรวจสอบสิทธิ์ Firebase ด้วย 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 ID, โทเค็นเพื่อการเข้าถึงของ Facebook, อีเมลและรหัสผ่านของผู้ใช้
  2. รับ Firebase.Auth.Credential สำหรับผู้ให้บริการตรวจสอบสิทธิ์รายใหม่:

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

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

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

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

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

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

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

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