Kev*_*ers 4 firebase google-cloud-platform google-cloud-firestore
我正在使用 Firestore 构建一个应用程序,其中一群人需要能够访问一个对象,我按照https://firebase.google.com/docs/firestore/solutions/role-based-access上的指南进行操作。所以,我的对象看起来有点像这样:
{
title: "A Great Story",
content: "Once upon a time ...",
members: {
alice: "host",
bob: "player",
david: "player",
jane: "player"
}
}
Run Code Online (Sandbox Code Playgroud)
这些键members只是用户 UID,所以实际上它们当然看起来不太好:)
现在,这一切都工作正常,我可以查询当前登录用户所属的对象,所有规则都有效。但是,现在我想在我的应用程序中显示成员列表。如何在 Firebase Auth 系统中查询我的会员地图中的用户?
如果这是不可能的,那么解决这个问题的“正常”方法是什么?文档本身中有用户信息(姓名、电子邮件、个人资料图片)的副本吗?但是,如何处理用户更改自己的信息呢?那么该文档有陈旧的旧数据..
我来自传统的关系数据库世界,这是我使用 NoSQL 数据库/Firestore 的第一步,因此我不太清楚如何最好地构建我的用户数据并使其保持最新。
使用客户端 SDK 无法列出 Firebase 项目的所有用户。
另一方面,Admin SDK 允许批量检索整个用户列表,请参阅https://firebase.google.com/docs/auth/admin/manage-users#list_all_users。请注意,如果您想使用 Admin SDK 提供的这种可能性,则需要从“特权环境”(请参阅 https://firebase.google.com/docs/admin/setup )执行此操作,例如使用云功能。然后,您需要从前端调用此云函数。
然而,一种经典方法是在专用的 Cloud Firestore 集合中维护所有用户的列表。这种方法有几个优点,其中:
listUsers()方法,您可以将结果作为UserRecord对象获得,该对象具有固定的属性列表。| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |