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

ตรวจสอบสิทธิ์ด้วย Firebase โดยไม่ระบุชื่อโดยใช้ JavaScript

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

ก่อนจะเริ่ม

  1. เพิ่ม Firebase กับโครงการ JavaScript ของคุณ
  2. หากคุณยังไม่ได้เชื่อมต่อแอปของคุณให้กับโครงการ Firebase ของคุณทำเช่นนั้นจาก คอนโซล Firebase
  3. เปิดใช้งานการตรวจสอบแบบไม่ระบุชื่อ:
    1. ใน Firebase คอนโซล , เปิดส่วนการตรวจสอบสิทธิ์
    2. ในการเข้าสู่ระบบในหน้าวิธีการเปิดใช้งานไม่ประสงค์ออกนามลงชื่อเข้าใช้วิธีการ

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

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

  1. โทร signInAnonymously วิธีการ:

    เว็บรุ่น 9

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    เว็บรุ่น8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    นี่คือที่ที่คุณสามารถตรวจจับและจัดการข้อผิดพลาดได้ สำหรับรายชื่อของรหัสข้อผิดพลาดมีลักษณะที่มี การตรวจสอบสิทธิ์การอ้างอิงเอกสาร
  2. หาก signInAnonymously วิธีการเสร็จสมบูรณ์โดยไม่ผิดพลาดสังเกตการณ์จดทะเบียนใน onAuthStateChanged จะเรียกและคุณจะได้รับข้อมูลบัญชีของผู้ใช้ที่ไม่ระบุชื่อจาก User วัตถุ:

    เว็บรุ่น 9

    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/firebase.User
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    เว็บรุ่น8

    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/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

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

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

  1. เมื่อผู้ใช้สัญญาณขึ้นเสร็จสิ้นการเข้าสู่ระบบในการไหลสำหรับผู้ให้บริการการตรวจสอบสิทธิ์ของผู้ใช้ขึ้นไป แต่ไม่รวมถึงเรียกร้องหนึ่งใน Auth.signInWith วิธี ตัวอย่างเช่น รับโทเค็น Google ID ของผู้ใช้ โทเค็นการเข้าถึง Facebook หรือที่อยู่อีเมลและรหัสผ่าน
  2. รับ AuthCredential สำหรับผู้ให้บริการตรวจสอบใหม่:

    ลงชื่อเข้าใช้ Google

    เว็บรุ่น 9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    เว็บรุ่น8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    เข้าสู่ระบบ Facebook

    เว็บรุ่น 9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    เว็บรุ่น8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    อีเมลรหัสผ่านลงชื่อเข้าใช้

    เว็บรุ่น 9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    เว็บรุ่น8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. ผ่าน AuthCredential วัตถุลงชื่อเข้าใช้ของผู้ใช้ link วิธีการ:

    เว็บรุ่น 9

    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);
      });

    เว็บรุ่น8

    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 คุณสามารถควบคุมการเข้าถึงข้อมูลในฐานข้อมูล Firebase ของคุณโดยใช้ กฎ Firebase