如何从firebase中的电子邮件中获取用户信息

Posted

技术标签:

【中文标题】如何从firebase中的电子邮件中获取用户信息【英文标题】:How to get user info from email in firebase 【发布时间】:2019-05-06 06:15:12 【问题描述】:

我正在使用 bcryptjs 和 nodejs 以及 firebase,但在登录时遇到问题。 用户信息(连同散列密码)存储在 firebase 数据库中(注册工作正常),为了将输入的密码(由用户)与存储的密码进行比较,我使用以下方法 -

bcrypt.compare(req.user.password, user.password, function(err, res) 
   // res === true
);

参考:https://www.npmjs.com/package/bcryptjs

我需要输入 emailid 中的用户信息,但我被困在这里,无法从 firebase 检索用户信息,因为用户信息映射到 uid,而不是电子邮件。

我可以从用户输入的电子邮件 ID(来自 firebase)或其他方式来验证用户身份中获取用户信息吗?

谢谢。

【问题讨论】:

【参考方案1】:

由于您使用node.js 标记:在受信任的环境中,您可以使用Firebase Admin SDK 至look up users by their email:

admin.auth().getUserByEmail(email)
  .then(function(userRecord) 
    // See the UserRecord reference doc for the contents of userRecord.
    console.log("Successfully fetched user data:", userRecord.toJSON());
  )
  .catch(function(error) 
    console.log("Error fetching user data:", error);
  );

【讨论】:

以上是关于如何从firebase中的电子邮件中获取用户信息的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 数据快照中获取密钥?

从电子邮件 Firebase 获取用户 ID(不是当前用户)

如何从 uid Firebase 数据库中获取电子邮件地址?

Flutter:如何从谷歌登录firebase获取生日? (安卓和iOS)

如何从 Firebase 获取特定用户的用户名?

从请求中获取用户信息到 Firebase 中的 Cloud Function