คุณสามารถใช้การตรวจสอบสิทธิ์ Firebase เพื่อสร้างและใช้บัญชีที่ไม่ระบุตัวตนชั่วคราวเพื่อตรวจสอบสิทธิ์กับ Firebase สามารถใช้บัญชีที่ไม่ระบุตัวตนชั่วคราวเหล่านี้เพื่ออนุญาตให้ผู้ใช้ที่ยังไม่ได้ลงชื่อสมัครใช้แอปของคุณสามารถทำงานกับข้อมูลที่ได้รับการปกป้องโดยกฎความปลอดภัย หากผู้ใช้ที่ไม่ระบุชื่อตัดสินใจสมัครใช้งานแอปของคุณ คุณสามารถ เชื่อมโยงข้อมูลรับรองการลงชื่อเข้าใช้ของพวกเขากับบัญชีที่ไม่ระบุชื่อได้ เพื่อให้พวกเขาสามารถทำงานกับข้อมูลที่ได้รับการป้องกันต่อไปในเซสชันอนาคต
ก่อนที่คุณจะเริ่มต้น
- เพิ่ม Firebase ในโครงการ JavaScript ของคุณ
- หากคุณยังไม่ได้เชื่อมต่อแอปกับโปรเจ็กต์ Firebase ให้เชื่อมต่อจาก คอนโซล Firebase
- เปิดใช้งานการรับรองความถูกต้องแบบไม่ระบุชื่อ:
- ใน คอนโซล Firebase ให้เปิดส่วน การรับรองความถูกต้อง
- ในหน้า วิธีการลงชื่อเข้า ใช้ ให้เปิดใช้งานวิธีการลงชื่อเข้าใช้ แบบไม่ระบุตัวตน
- ไม่บังคับ : หากคุณอัปเกรดโปรเจ็กต์เป็น Firebase Authentication ด้วย Identity Platform คุณสามารถเปิดใช้การล้างข้อมูลอัตโนมัติได้ เมื่อคุณเปิดใช้งานการตั้งค่านี้ บัญชีที่ไม่ระบุตัวตนที่มีอายุมากกว่า 30 วันจะถูกลบโดยอัตโนมัติ ในโครงการที่เปิดใช้งานการล้างข้อมูลอัตโนมัติ การรับรองความถูกต้องแบบไม่ระบุชื่อจะไม่นับรวมในขีดจำกัดการใช้งานหรือโควต้าการเรียกเก็บเงินอีกต่อไป ดู การล้างข้อมูลอัตโนมัติ
รับรองความถูกต้องด้วย Firebase โดยไม่ระบุตัวตน
เมื่อผู้ใช้ที่ออกจากระบบใช้ฟีเจอร์ของแอปที่ต้องมีการตรวจสอบสิทธิ์ด้วย Firebase ให้ลงชื่อเข้าใช้โดยไม่ระบุตัวตนโดยทำตามขั้นตอนต่อไปนี้:
- เรียกใช้เมธอด
signInAnonymously
:นี่เป็นที่ที่คุณสามารถตรวจจับและจัดการข้อผิดพลาดได้ สำหรับรายการรหัสข้อผิดพลาด โปรดดูที่ Auth Reference DocsWeb modular API
import { getAuth, signInAnonymously } from "firebase/auth"; const auth = getAuth(); signInAnonymously(auth) .then(() => { // Signed in.. }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // ... });
Web namespaced API
firebase.auth().signInAnonymously() .then(() => { // Signed in.. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
- หากเมธอด
signInAnonymously
เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด ผู้สังเกตการณ์ที่ลงทะเบียนในonAuthStateChanged
จะทริกเกอร์ และคุณสามารถรับข้อมูลบัญชีผู้ใช้ที่ไม่ระบุชื่อได้จากวัตถุUser
:Web modular API
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web namespaced API
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
แปลงบัญชีนิรนามเป็นบัญชีถาวร
เมื่อผู้ใช้ที่ไม่ระบุตัวตนลงชื่อสมัครใช้แอปของคุณ คุณอาจต้องการอนุญาตให้พวกเขาทำงานต่อไปด้วยบัญชีใหม่ ตัวอย่างเช่น คุณอาจต้องการทำให้สินค้าที่ผู้ใช้เพิ่มลงในรถเข็นช็อปปิ้งก่อนที่จะลงชื่อสมัครใช้ในแอปใหม่ ตะกร้าสินค้าของบัญชี โดยทำตามขั้นตอนต่อไปนี้:
- เมื่อผู้ใช้ลงชื่อสมัครใช้ ให้ดำเนินการขั้นตอนการลงชื่อเข้าใช้สำหรับผู้ให้บริการตรวจสอบสิทธิ์ของผู้ใช้สูงสุด แต่ไม่รวม โดยเรียกหนึ่งในเมธอด
Auth.signInWith
ตัวอย่างเช่น รับโทเค็น Google ID ของผู้ใช้ โทเค็นการเข้าถึง Facebook หรือที่อยู่อีเมลและรหัสผ่าน รับ
AuthCredential
สำหรับผู้ให้บริการการรับรองความถูกต้องรายใหม่:ลงชื่อเข้าใช้ Google
Web modular API
import { GoogleAuthProvider } from "firebase/auth"; const credential = GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
Web namespaced API
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
เข้าสู่ระบบ Facebook
Web modular API
import { FacebookAuthProvider } from "firebase/auth"; const credential = FacebookAuthProvider.credential( response.authResponse.accessToken);
Web namespaced API
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
ลงชื่อเข้าใช้ด้วยรหัสผ่านอีเมล
Web modular API
import { EmailAuthProvider } from "firebase/auth"; const credential = EmailAuthProvider.credential(email, password);
Web namespaced API
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
ส่งวัตถุ
AuthCredential
ไปยังวิธีlink
ของผู้ใช้ที่ลงชื่อเข้าใช้:Web modular API
import { getAuth, linkWithCredential } from "firebase/auth"; const auth = getAuth(); linkWithCredential(auth.currentUser, credential) .then((usercred) => { const user = usercred.user; console.log("Anonymous account successfully upgraded", user); }).catch((error) => { console.log("Error upgrading anonymous account", error); });
Web namespaced API
auth.currentUser.linkWithCredential(credential) .then((usercred) => { var user = usercred.user; console.log("Anonymous account successfully upgraded", user); }).catch((error) => { console.log("Error upgrading anonymous account", error); });
หากการเรียก link
สำเร็จ บัญชีใหม่ของผู้ใช้จะสามารถเข้าถึงข้อมูล Firebase ของบัญชีที่ไม่ระบุชื่อได้
ทำความสะอาดอัตโนมัติ
หากคุณอัปเกรดโปรเจ็กต์เป็น Firebase Authentication ด้วย Identity Platform คุณสามารถเปิดใช้การล้างข้อมูลอัตโนมัติในคอนโซล Firebase เมื่อคุณเปิดใช้ฟีเจอร์นี้ แสดงว่าคุณอนุญาต Firebase จะลบบัญชีที่ไม่ระบุตัวตนที่มีอายุมากกว่า 30 วันโดยอัตโนมัติ ในโครงการที่เปิดใช้งานการล้างข้อมูลอัตโนมัติ การรับรองความถูกต้องแบบไม่ระบุชื่อจะไม่นับรวมในขีดจำกัดการใช้งานหรือโควต้าการเรียกเก็บเงิน
- บัญชีที่ไม่ระบุชื่อใดๆ ที่สร้างขึ้นหลังจากเปิดใช้งานการล้างข้อมูลอัตโนมัติอาจถูกลบโดยอัตโนมัติเมื่อใดก็ได้หลังจากผ่านไป 30 วันหลังการสร้าง
- บัญชีที่ไม่ระบุตัวตนที่สร้างขึ้นก่อนที่จะเปิดใช้งานการล้างข้อมูลอัตโนมัติจะมีสิทธิ์ถูกลบโดยอัตโนมัติโดยเริ่ม 30 วันหลังจากเปิดใช้งานการล้างข้อมูลอัตโนมัติ
- หากคุณปิดการล้างข้อมูลอัตโนมัติ บัญชีที่ไม่ระบุชื่อใดๆ ที่กำหนดเวลาให้ลบจะยังคงถูกลบตามกำหนดเวลา บัญชีเหล่านี้ไม่นับรวมในขีดจำกัดการใช้งานหรือโควต้าการเรียกเก็บเงิน
- หากคุณ "อัปเกรด" บัญชีที่ไม่ระบุชื่อโดยเชื่อมโยงกับวิธีการลงชื่อเข้าใช้ใดๆ บัญชีนั้นจะไม่ถูกลบโดยอัตโนมัติ
หากคุณต้องการดูจำนวนผู้ใช้ที่จะได้รับผลกระทบก่อนที่จะเปิดใช้คุณลักษณะนี้ และคุณได้อัปเกรดโปรเจ็กต์ของคุณเป็น Firebase Authentication ด้วย Identity Platform คุณสามารถกรองตาม is_anon
ใน Cloud Logging
ขั้นตอนถัดไป
ตอนนี้ผู้ใช้สามารถตรวจสอบสิทธิ์กับ Firebase แล้ว คุณสามารถควบคุมการเข้าถึงข้อมูลในฐานข้อมูล Firebase โดยใช้ กฎของ Firebase