javascript - 如何在 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()}
/>
一切正常,但如果用户第一次登录,我将无法获取数据。帮帮我。
解决方案
用户首次注册时,您可以检查user.additionalUserInfo.isNewUser
您的登录方法,user
登录凭据在哪里
您也可以检查(不言自明)
firebase.auth().currentUser.metadata.creationTime === firebase.auth().currentUser.metadata.lastSignInTime
我相信它也将在您的user
对象中可用onAuthStateChanged
user.metadata.creationTime === user.metadata.lastSignInTime
推荐阅读
- azure - Azure Blob 存储 - 重复文件问题
- bash - 检查 bash 中的特定参数
- r - 在 R 中同时运行多个带有交互项的回归
- c++ - 运行一个卡在零的计时器代码
- python - 如何在 on_epoch_end 中获得真正的 y_true 和 y_pred?
- docker - Docker 绑定挂载 - 在浏览器上看不到更改
- splunk - 使用 regEx ("message":"TransactionRefNo =====> 37010072") 从使用查询的 splunk 事件中提取此特定模式?
- python-3.x - %s 函数 Python 3
- javascript - 如何在 JS 类中定义私有方法
- java - 错误“java.lang.ClassNotFoundException”阻止我运行应用程序