firebase - Firebase - 在不指定 UID 或电子邮件地址的情况下获取用户帐户
问题描述
我制作了一个 Ionic-Angular 应用程序,可以将假数据批量生成到我的 Firebase 数据库中。它可以分别生成多种数据:
- 新的
user accounts
(使用 Firebase 身份验证) - 新
user profile
文档(在 Cloud Firestore 的“配置文件”集合中) - 与 Firestore 中其他集合中的个人用户相关的其他类型的数据。
为了让我知道哪些文档与哪个用户相关联,我希望用户的uid
属性是他/她所有文档的名称(也就是“foo”集合中的用户文档位于foo/${uid}
)。
因此,如果我想为“foo”集合生成 10 个文档,我需要uid
10 个用户中的那个,无论他们是谁。是否有可能获取后者?它将等效于admin.auth().getUser(uid)
,但没有指定uid
(因此给了我一个随机的、未指定的用户)。
我可以uid
在生成帐户时将 s 存储在单独的文档中,然后在需要时获取它们,但我不想经历这样做的麻烦和随之而来的逻辑。
解决方案
您尝试从客户端应用程序执行的操作(在 Firebase Auth 中列出用户)是不可能的。默认情况下,允许最终用户发现所有其他最终用户的列表将是一个巨大的安全漏洞。
如果您想列出用户,您应该使用 Firebase Admin SDK 编写后端代码。它有一种列出所有用户的方法。如果您需要从客户端应用程序调用它,您需要自己找到一种方法来连接它,可能使用 Cloud Functions 或其他一些后端。