คุณสามารถใช้ Firebase Authentication เพื่อสร้างและใช้บัญชีชั่วคราวแบบไม่ระบุตัวตน เพื่อตรวจสอบสิทธิ์กับ Firebase บัญชีชั่วคราวแบบไม่ระบุตัวตนเหล่านี้ใช้เพื่อ อนุญาตให้ผู้ใช้ที่ยังไม่ได้ลงชื่อสมัครใช้แอปของคุณทำงานกับข้อมูลที่ได้รับการปกป้อง โดยกฎความปลอดภัย หากผู้ใช้ที่ไม่ระบุตัวตนตัดสินใจลงชื่อสมัครใช้แอป คุณจะลิงก์ข้อมูลเข้าสู่ระบบเพื่อลงชื่อเข้าใช้กับบัญชีที่ไม่ระบุตัวตนเพื่อให้ผู้ใช้ทำงานกับข้อมูลที่ได้รับการปกป้องในเซสชันต่อๆ ไปได้
ก่อนเริ่มต้น
-
ก่อนที่จะใช้ Firebase Authentication คุณต้องเพิ่ม Firebase Unity SDK (โดยเฉพาะ
FirebaseAuth.unitypackage) ลงในโปรเจ็กต์ Unityดูวิธีการโดยละเอียดสําหรับขั้นตอนการตั้งค่าเริ่มต้นเหล่านี้ได้ใน เพิ่ม Firebase ในโปรเจ็กต์ Unity
- หากยังไม่ได้เชื่อมต่อแอปกับโปรเจ็กต์ Firebase ให้ทําจากคอนโซล Firebase
-
เปิดใช้การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ
- ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > การตรวจสอบสิทธิ์
- ในแท็บวิธีการลงชื่อเข้าใช้ ให้เปิดใช้ผู้ให้บริการลงชื่อเข้าใช้แบบไม่ระบุตัวตน
- ไม่บังคับ: หากอัปเกรดโปรเจ็กต์เป็น Firebase Authentication with Identity Platform คุณจะเปิดใช้ การล้างข้อมูลอัตโนมัติได้ เมื่อเปิดใช้การตั้งค่านี้ ระบบจะลบบัญชีที่ไม่ระบุตัวตน ที่เก่ากว่า 30 วันโดยอัตโนมัติ ในโปรเจ็กต์ที่เปิดใช้การล้างข้อมูลอัตโนมัติ การตรวจสอบสิทธิ์แบบไม่ระบุตัวตนจะไม่นับรวมในโควต้าการใช้งานหรือโควต้าการเรียกเก็บเงินอีกต่อไป ดูการล้างข้อมูลอัตโนมัติ
ตรวจสอบสิทธิ์ด้วย Firebase โดยไม่ระบุตัวตน
เมื่อผู้ใช้ที่ไม่ได้ลงชื่อเข้าใช้ใช้ฟีเจอร์ของแอปที่ต้องมีการตรวจสอบสิทธิ์ด้วย Firebase ให้ลงชื่อเข้าใช้ผู้ใช้โดยไม่ระบุตัวตนโดยทำตามขั้นตอนต่อไปนี้
คลาสFirebaseAuth เป็นเกตเวย์สำหรับการเรียก API ทั้งหมด
โดยจะเข้าถึงได้ผ่าน FirebaseAuth.DefaultInstance
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
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); });
เปลี่ยนบัญชีที่ไม่ระบุตัวตนเป็นบัญชีถาวร
เมื่อผู้ใช้ที่ไม่ระบุตัวตนลงชื่อสมัครใช้แอป คุณอาจต้องการอนุญาตให้ผู้ใช้ทำงานต่อด้วยบัญชีใหม่ของตนเอง เช่น คุณอาจต้องการทำให้สินค้าที่ผู้ใช้เพิ่มลงในรถเข็นช็อปปิ้งก่อนที่จะลงชื่อสมัครใช้พร้อมใช้งานในรถเข็นช็อปปิ้งของบัญชีใหม่ โดยทำตามขั้นตอนต่อไปนี้
- เมื่อผู้ใช้ลงชื่อสมัครใช้ ให้ทำขั้นตอนการลงชื่อเข้าใช้สำหรับผู้ให้บริการ
การตรวจสอบสิทธิ์ของผู้ใช้ให้เสร็จสมบูรณ์ โดยไม่ต้องเรียกใช้เมธอดใดเมธอดหนึ่งของ
Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsyncเช่น รับโทเค็นรหัส Google ของผู้ใช้ โทเค็นการเข้าถึง Facebook หรืออีเมลและรหัสผ่าน รับ
Firebase.Auth.Credentialสำหรับผู้ให้บริการตรวจสอบสิทธิ์รายใหม่ส่งออบเจ็กต์
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