通过用户的电子邮件,我想在用户未登录的情况下从 firebase.auth() 获取用户的 ID。我的代码使用 VueJS。有没有办法做到这一点?
我已经在 Node.JS 中搜索并找到了这个,但我不确定这是否也是在 VueJS 中执行此操作的正确方法。
admin
.auth()
.getUserByEmail(email)
.then((userRecord) => {
// See the UserRecord reference doc for the contents of userRecord.
console.log(`Successfully fetched user data: ${userRecord.toJSON()}`);
})
.catch((error) => {
console.log('Error fetching user data:', error);
});
这是仅基于电子邮件(未登录)获取 uid 的正确方法吗 谢谢
答案 0 :(得分:1)
这是仅基于电子邮件(未登录)获取 uid 的正确方法
简短回答:是的。
以下方法将使用 Firebase Admin SDK 根据用户的 电子邮件 返回用户 uid:
admin
.auth()
.getUserByEmail(email)
.then((userRecord) => {
return userRecord.getUid();
})
.catch((error) => {
console.log('Error fetching user data:', error);
});
与此同时,如果您指的是另一个 AUTH 提供商电子邮件地址,则此方法将失败:
<块引用>警告:对于电子邮件查找,您只能搜索主要(顶级)电子邮件,而不能搜索特定于提供商的电子邮件。例如,如果使用不同电子邮件 facebookUser@example.com 的 Facebook 帐户链接到使用电子邮件 user@example.com 的现有用户,则调用 getUserByEmail("facebookUser@example.com") 将不会产生任何结果,而 getUserByEmail("user @example.com") 将返回预期的用户。在默认的“每封电子邮件一个帐户”设置的情况下,用于登录的第一封电子邮件将用作顶级电子邮件,除非之后进行修改。设置“每封邮件多个账户”时,除非手动更新,否则仅在创建密码用户时设置主邮件。
注意:Admin SDK 旨在在安全环境中使用,通常不应在基于 Web 的应用程序客户端中使用。