אמת באמצעות 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;
        // ...
      });
    זה גם המקום שבו אתה יכול לתפוס ולטפל בשגיאות. לקבלת רשימה של קודי שגיאה להעיף מבט לעבר Docs פניית המחבר .
  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 של המשתמש, אסימון הגישה לפייסבוק או כתובת הדוא"ל והסיסמה.
  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);
    כניסה לפייסבוק

    גרסת אינטרנט 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 .