首页 > 解决方案 > 如何在 react firebase-ui 中查找用户是否是第一次登录?

问题描述

我想查看用户是第一次登录还是已经登录,以便我可以将用户数据存储在 firestore 中以供进一步使用。我正在使用react-firebaseui,其中自动生成 UI 以进行身份​​验证。如果用户第一次登录,返回的数据没有值。这是下面的代码

  const uiConfig = {
    signInFlow: "popup",
    signInOptions: [
      firebase.auth.GoogleAuthProvider.PROVIDER_ID,
      firebase.auth.EmailAuthProvider.PROVIDER_ID,
    ],
    signInMethod: firebase.auth.EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD,
    forceSameDevice: false,
    callbacks: {
      signInSuccessWithAuthResult: () => false,
    },
  };


  useEffect(() => {
      firebase.auth().onAuthStateChanged((user) => {
        console.log("auth state changed");
        console.log(user);
      });    
  }, []);


// The UI part

<StyledFirebaseAuth
    uiConfig={uiConfig}
    firebaseAuth={firebase.auth()}
/>

一切正常,但如果用户第一次登录,我将无法获取数据。帮帮我。

标签: javascriptreactjsfirebasefirebase-authentication

解决方案


用户首次注册时,您可以检查user.additionalUserInfo.isNewUser您的登录方法,user登录凭据在哪里

您也可以检查(不言自明)

firebase.auth().currentUser.metadata.creationTime === firebase.auth().currentUser.metadata.lastSignInTime

我相信它也将在您的user对象中可用onAuthStateChanged

user.metadata.creationTime === user.metadata.lastSignInTime

推荐阅读