如何通过ID获取Firebase用户的电子邮件地址

时间:2016-11-29 15:45:05

标签: firebase firebase-authentication

我在Firebase中使用电子邮件/密码验证。所以每个用户都有一个电子邮件地址我的用户是小组,我希望每个用户都能够看到该组中的所有其他用户。具体来说,我想在前端向用户显示电子邮件列表。我的问题不是关于如何为此制定规则,而是如何获得用户ID 的用户电子邮件地址?请注意,我要求获取其他用户的列表,而不是当前已登录的用户。

我还没有找到任何SO答案,显示如何通过auth()获取其他用户的电子邮件地址。我已经看到了将电子邮件放在用户ID下的/users集合中的建议,但对于我来说,将auth()/users/$userId中的电子邮件地址存储起来似乎令人难以置信。更改电子邮件地址将是一场噩梦。所以必须有办法从auth()收到电子邮件,对吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果要检索特定用户的电子邮件地址,可以使用新的Firebase管理SDK。

admin.auth().getUser(uid)
  .then(function(userRecord) {
    // See the tables below for the contents of userRecord
    console.log("Successfully fetched user data:", userRecord.toJSON());
  })
  .catch(function(error) {
    console.log("Error fetching user data:", error);
  })

请参阅the documentation on retrieving user data

顾名思义,Admin SDK使用提升的授权运行,因此只应在受信任的硬件上运行,例如您控制的应用程序服务器。

正如我评论的那样:没有API来获取用户列表。