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

如何通过ID获取Firebase用户的电子邮件地址,firebase,firebase-authentication,Firebase,Firebase Authentication,我正在Firebase中使用电子邮件/密码身份验证。所以每个用户都有一个电子邮件地址。我的用户在组中,我希望每个用户都能够看到组中的所有其他用户。具体来说,我想在前端向用户显示电子邮件列表。我的问题不是如何制定规则,而是,如何在给定用户ID的情况下获取用户的电子邮件地址?请注意,我询问的是获取其他用户的列表,而不是当前登录的用户 我还没有找到任何关于如何通过auth()获取其他用户电子邮件地址的答案。我看到过将电子邮件放在用户ID下的/users集合中的建议,但对我来说,将电子邮件地址同时存储在

我正在Firebase中使用电子邮件/密码身份验证。所以每个用户都有一个电子邮件地址。我的用户在组中,我希望每个用户都能够看到组中的所有其他用户。具体来说,我想在前端向用户显示电子邮件列表。我的问题不是如何制定规则,而是,如何在给定用户ID的情况下获取用户的电子邮件地址?请注意,我询问的是获取其他用户的列表,而不是当前登录的用户

我还没有找到任何关于如何通过
auth()
获取其他用户电子邮件地址的答案。我看到过将电子邮件放在用户ID下的
/users
集合中的建议,但对我来说,将电子邮件地址同时存储在
auth()
/users/$userId
中似乎非常脆弱。更改电子邮件地址将是一场噩梦。所以一定有办法从
auth()
获取电子邮件,对吗


谢谢

如果要检索特定用户的电子邮件地址,可以使用新的Firebase Admin 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);
  })

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


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

AdminSDK不能在客户端运行(角度),因此这并不能回答我的问题。我需要知道用户如何获得电子邮件列表。无论是通过SDK,还是通过将其存储在
/users
集合中。我只是需要某种解决办法。没有理由否决这个问题。如果这个问题有什么问题,请在这里留下评论,这样我可以编辑它,为谷歌用户提供更多的价值。对不起,凯尔。没有用于从Firebase身份验证获取用户列表的公共API。如果您想请求添加该功能,请插话。除此之外,我看不出这个问题与以下问题有什么不同:,所有这些问题都指向将用户存储在单独的数据库中。不管脆弱与否,这是目前唯一已知的方法(很多开发者都使用这种方法)。@FrankvanPuffelen我认为OP提出了以下问题;假设我们有用户,并且每个用户都是其他用户组的一部分,那么如何获取与此用户在同一组中的其他用户的电子邮件地址。请随意告诉我,这是对OP问题的一个完全错误的解释,我将回到我的角落:-)@jay我的问题是,“如何在给定用户ID的情况下获取用户的电子邮件地址?”。上面用黑体字,嗯。根据您对@FrankvanPuffelen answer的评论,您表示我需要知道用户如何获得电子邮件列表。看来你们可能有两个问题,或者我们误解了。如果您的问题是“如何在给定用户ID的情况下获取用户的电子邮件地址?”,那么Franks的回答是正确的!如果没有,也许澄清这个问题会帮助我们帮助你。