代码之家  ›  专栏  ›  技术社区  ›  Mel

如何访问firebase auth userMetadata

  •  0
  • Mel  · 技术社区  · 5 年前

    我正在试图找到一种方法来访问本文中描述的creationTime和lastminintime documentation .

    有没有在react钩子中使用它的例子?

    我无法理解firebase文档的一般意义-它只是一页上的文字。我认为它是为那些凭直觉知道如何填空的人设计的。总的来说,如何做到这一点,我仍然感到困惑。

    我可以访问验证用户电子邮件使用反应钩如下:

    import React, { useState, useEffect, useContext, createContext } from "react";
    import firebase  from "../firebase";
    import {auth} from "../firebase";
    
    
    const authContext = createContext();
    
    // Provider wraps app and makes auth object available by useAuth().
    export function ProvideAuth({ children }) {
      const auth = useProvideAuth();
      return <authContext.Provider value={auth}>{children}</authContext.Provider>;
    }
    
    // Hook to get the auth 
    export const useAuth = () => {
      return useContext(authContext);
    };
    
    // Provider hook that creates auth state
    function useProvideAuth() {
      const [user, setUser] = useState(null);
      
      
      const signin = (email, password) => {
        return firebase
          .auth()
          .signInWithEmailAndPassword(email, password)
          .then(response => {
            setUser(response.user);
            return response.user;
          });
      };
    
      const signup = (email, password) => {
        return firebase
          .auth()
          .createUserWithEmailAndPassword(email, password)
          .then(response => {
            setUser(response.user);
            return response.user;
          });
      };
    
      const signout = () => {
        return firebase
          .auth()
          .signOut()
          .then(() => {
            setUser(false);
          });
      };
    
      const sendPasswordResetEmail = email => {
        return firebase
          .auth()
          .sendPasswordResetEmail(email)
          .then(() => {
            return true;
          });
      };
    
      const confirmPasswordReset = (code, password) => {
        return firebase
          .auth()
          .confirmPasswordReset(code, password)
          .then(() => {
            return true;
          });
      };
    
      
      useEffect(() => {
        const unsubscribe = firebase.auth().onAuthStateChanged(user => {
          if (user) {
            setUser(user);
          } else {
            setUser(false);
          }
        });
    
        
        return () => unsubscribe();
      }, []);
      
      return {
        user,
        signin,
        signup,
        signout,
        sendPasswordResetEmail,
        confirmPasswordReset
      };
    }
    

    现在,我想弄清楚要访问所描述的字符串值需要做什么 here 或者描述的时间戳 here

    我试过了(所有的猜测):

     {auth.user.UserMetadata().creationTime}
    
     {auth.user.creationTime}
    
     {auth.user.UserMetadata.creationTime}
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   Mel    5 年前

    这很管用。

                                {auth.user.metadata.creationTime}
    

    我不明白为什么。firebase文档中的引用将元数据称为UserMetadata。我不知道如何找到告诉人们在UserMetadata和metadata之间进行跳跃的信息。

    如果有人知道这件事的关键是什么,我会永远感激你的洞察力。