Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
דף זה תורגם על ידי Cloud Translation API.
Switch to English

אמת באמצעות Firebase באופן אנונימי באמצעות JavaScript

באפשרותך להשתמש באימות Firebase כדי ליצור חשבונות אנונימיים זמניים ולהשתמש בהם כדי לאמת עם Firebase. ניתן להשתמש בחשבונות אנונימיים זמניים אלה כדי לאפשר למשתמשים שטרם נרשמו לאפליקציה שלך לעבוד עם נתונים המוגנים על ידי כללי אבטחה. אם משתמש אנונימי מחליט להירשם לאפליקציה שלך, תוכל לקשר את אישורי הכניסה שלו לחשבון האנונימי כדי שיוכלו להמשיך לעבוד עם הנתונים המוגנים שלהם בפגישות עתידיות.

לפני שאתה מתחיל

  1. הוסף את Firebase לפרויקט JavaScript שלך .
  2. אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
  3. הפעל אימות אנונימי:
    1. במסוף Firebase , פתח את החלק Auth .
    2. בדף שיטות כניסה , הפעל את שיטת הכניסה האנונימית .

אמת באמצעות Firebase באופן אנונימי

כאשר משתמש מחובר משתמש בתכונת אפליקציה הדורשת אימות באמצעות Firebase, היכנס למשתמש באופן אנונימי על ידי השלמת השלבים הבאים:

  1. התקשר לשיטה signInAnonymously :

    אינטרנט v8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

    אינטרנט v9

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });
    זה גם המקום בו תוכלו לתפוס ולטפל בשגיאות. לקבלת רשימה של קודי שגיאה, עיין במסמכי ההפניה לאימות .
  2. אם השיטה signInAnonymously הושלמה ללא שגיאה, הצופה הרשום ב- onAuthStateChanged יופעל ותוכל לקבל את נתוני החשבון של המשתמש האנונימי מאובייקט User :

    אינטרנט v8

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

    אינטרנט v9

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

להמיר חשבון אנונימי לחשבון קבוע

כשמשתמש אנונימי נרשם לאפליקציה שלך, ייתכן שתרצה לאפשר לו להמשיך בעבודתו עם החשבון החדש שלהם - לדוגמה, ייתכן שתרצה להפוך את הפריטים שהמשתמש הוסיף לעגלת הקניות שלהם לפני שהם נרשמים להיות זמינים בפריט החדש שלהם. עגלת הקניות של החשבון. לשם כך, בצע את השלבים הבאים:

  1. כאשר המשתמש נרשם, השלם את זרימת הכניסה לספק האימות של המשתמש עד Auth.signInWith משיטות Auth.signInWith , אך לא כולל. לדוגמה, קבל את אסימון מזהה Google של המשתמש, אסימון גישה לפייסבוק או כתובת דוא"ל וסיסמה.
  2. קבל AuthCredential אישור לספק האימות החדש:

    כניסה ל- Google

    אינטרנט v8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    אינטרנט v9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    כניסה לפייסבוק

    אינטרנט v8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    אינטרנט v9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    כניסה באמצעות סיסמה בדוא"ל

    אינטרנט v8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);

    אינטרנט v9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);
  3. העבירו את האובייקט AuthCredential לשיטת link של המשתמש בכניסה:

    אינטרנט v8

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

    אינטרנט v9

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

אם הקריאה link תצליח, החשבון החדש של המשתמש יכול לגשת לנתוני Firebase של החשבון האנונימי.

הצעדים הבאים

כעת, כשמשתמשים יכולים לבצע אימות באמצעות Firebase, תוכל לשלוט בגישה שלהם לנתונים במסד הנתונים שלך ב- Firebase באמצעות כללי Firebase .