簡體   English   中英

Firebase v9 注冊新用戶並將用戶存儲在用戶集合中

[英]Firebase v9 signup a new user and store users in a users collection

我可以注冊一個新用戶,但如何將該用戶存儲在 firestore 的集合中? 我不確定 firebase v9 addDoc function 是否在正確的位置,但我不知道其他地方或如何編碼。

export const useSignup = () => {
  const [error, setError] = useState("");
  const { dispatch } = useAuthContext();

  const signup = (email: string, password: string, username: string) => {
    setError("");
    createUserWithEmailAndPassword(auth, email, password)
      .then((res) => {
        dispatch({ type: "LOGIN", payload: res.user });
        const uid = res.user.uid;
        const data = {
          id: uid,
          email,
          username,
        };
        const ref = collection(db, "users");
        addDoc(ref, {
          data,
        });
      })
      .catch((err) => {
        setError(err.message);
      });
  };

  return { error, signup };
};

要為新注冊的用戶創建用戶文檔,您可以執行以下操作:

  1. 從用戶 object 訪問他們的出價(就像您已經做的那樣)。
  2. 創建一個文檔引用,其路徑以上述 mid 結尾。 請注意,此文檔尚不存在。
  3. 將 setDoc 方法與上述文檔參考一起使用,並將用戶數據存儲為輸入。

它看起來像下面的代碼形式:

const uid = res.user.uid;
const data = {
    id: uid,
    email,
    username,
};
const ref = collection(db, `users/${uid}`);
setDoc(ref, data)
    .then(() => console.log("Created New User Document Successfully"))
    .catch(() => console.log("Error"))

您必須在調度調用后立即編寫上述代碼。 希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM