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

时间:2018-12-04 18:34:01

标签: node.js firebase firebase-realtime-database firebase-authentication bcrypt

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

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

ref:https://www.npmjs.com/package/bcryptjs

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

我可以从用户输入的电子邮件ID(从Firebase)中获取用户信息,还是通过其他方式对用户进行身份验证。

谢谢。

1 个答案:

答案 0 :(得分:1)

由于您使用node.js进行了标记:在受信任的环境中,您可以使用Firebase Admin SDKlook 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);
  });