【问题标题】:How do I get the email address of a Firebase user by ID [duplicate]如何按 ID 获取 Firebase 用户的电子邮件地址 [重复]
【发布时间】:2017-04-13 16:33:29
【问题描述】:

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

我还没有找到任何 SO 答案来显示如何通过 auth() 获取另一个用户的电子邮件地址。我已经看到将电子邮件放在用户 ID 下的 /users 集合中的建议,但是对我来说,将电子邮件地址存储在 auth()/users/$userId 中似乎非常脆弱。更改电子邮件地址将是一场噩梦。所以肯定有办法得到auth()的邮件吧?

谢谢!

【问题讨论】:

  • 这个问题没有理由被否决。如果问题有问题,请在此处发表评论,以便我进行编辑,为 Google 员工提供更多价值。
  • 对不起凯尔。没有公共 API 可以从 Firebase 身份验证中获取用户列表。如果您想请求添加该功能,请拨打here。除此之外,我看不出这个问题与这些问题有何不同:stackoverflow.com/…,所有这些都指向将用户存储在单独的数据库中。脆弱与否,这是目前唯一已知的方法(很多开发人员都在使用)。
  • @FrankvanPuffelen 我认为 OP 在问以下问题;鉴于我们有用户并且每个用户都是其他用户组的一部分,我如何获取与该用户在同一组中的 其他用户 的电子邮件地址。随时告诉我这是对 OP 问题的完全错误解释,我会回到我的角落:-)
  • @jay 我的问题是,“我如何在给定用户 ID 的情况下获取用户的电子邮件地址?”。上面是粗体字。
  • 嗯。根据您对@FrankvanPuffelen 回答的评论,您说我需要知道用户如何获取电子邮件列表。所以看起来你可能有两个问题,或者我们误解了。如果您的问题是“如何在给定用户 ID 的情况下获取用户的电子邮件地址?”,那么 Franks 的回答是正确的!如果没有,也许澄清问题会帮助我们帮助您。

标签: firebase firebase-authentication


【解决方案1】:

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

the documentation on retrieving user data

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

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

【讨论】:

  • Admin SDK 不能在客户端(在 Angular 中)运行,所以这不能回答我的问题。我需要知道用户如何获取电子邮件列表。无论是通过 SDK,还是将其存储在 /users 集合中。我只需要某种解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
相关资源
最近更新 更多