javascript - 知道用户是否已经注册了 Reactjs 和 firebase-google auth
问题描述
我正在使用 Reactjs 和 firebase 创建一个 Web 应用程序,但我遇到了一个小问题。感谢 firebase 和 gmail 帐户,我有一个注册/登录系统。当用户注册时,除了经典的firebase函数外,我还调用了一个函数来在我的数据库中记录用户信息。
我遇到的问题如下:如果一个用户已经通过他的谷歌帐户注册,他在应用程序中填写了东西并且它是在基础中注册的,如果用户尝试再次注册(因为他忘记了它是已注册),有关它的所有信息都将从数据库中删除。例如,这是我的基础结构:
users
- user-1
--- E-mail
--- username
--- data
----- sub-data
- user-2
--- E-mail
--- username
--- data
----- sub-data
如果用户 1 尝试再次注册,这里是新的基础:
users
- user-1
--- E-mail
--- username
--- data
----- sub-data
- user-2
--- E-mail
--- username
--- data
----- sub-data
所以,这是我的注册部分代码:
auth.signInWithPopup(googleProvider)
.then((result) => {
db.doCreateUser(result.user.uid, result.user.displayName,
result.user.email);
});
和 doCreateUser 函数:
doCreateUser = (id, username, email) =>
db.ref(`users/${id}`).set({
username: username,
email: email,
});
是否可以知道用户是否已在此 Google 帐户上注册?如果是这样,你能给我一些想法吗?
我试图通过这样做来恢复错误:
authen.signInWithPopup (provider) .catch (function (error) {
console.log (error);
});
但控制台是空的
如果不是,如何不替换数据(通过直接连接而不是重新注册或重新记录,同时将数据保留在“数据”和子数据“中)?
谢谢
解决方案
好的,多亏了result.additionalUserInfo.isNewUser,我终于找到了,我之前已经尝试过,但不是很明显
推荐阅读
- shopify - Shopify 使用液体的自定义表单
- html - Angular 5+组件HTMLElement.style.display突然给出无法读取'null'的属性'style'
- javascript - React 切换全局组件
- javascript - 在 Rails 中循环结构化数据
- vector - Openlayers 6:openlayers 如何处理损坏的几何图形?
- node.js - jsx 错误:: SyntaxError: Unexpected token / in /home/meditool/Bureau/med-tool/views/register.ejs 同时编译 ejs
- javascript - 为什么 map 函数不遍历数组?
- git - 如何运行在另一个分支中生成文件的脚本?
- javascript - `setNum(() => num++)` 不起作用,但 `setNum(() => num + 1)`
- amazon-web-services - AWS AppSync & DynamoDB 单表设计:PutItem 基于另一个项目的字段值