我正在编写一个处理组织成员和付款的应用程序。 我有以下实体:
Organization---+
|
+---Members-----+
| |
| +---Children
+---Accounts
|
+---Payments
每个组织可以支付> 100,000,但只有少数会员和帐户。 当会员登录后,他只能看到他的付款。 当admin登录时,他应该能够访问所有数据。
问题是:
感谢。
答案 0 :(得分:5)
Firebase实时数据库始终牢记的一件事是您要检索的数据量以及您使数据库考虑的数据量。
如果您让数据库考虑100K付款以显示当前用户的10笔付款,那么您浪费了大量资源。我在这里写了更多相关信息:Firebase Scalability Limit和Firebase Performance: How many children per node?。
如果您分别为每个用户的付款建模,则会大幅减少服务器必须考虑的数据量。这提高了可扩展性,但当然不是线性的。
如果管理员用户需要查看所有数据,我建议您先让他们选择一个用户。之后,他们将遵循与普通用户相同的访问模式。
答案 1 :(得分:1)
你应该保持你的结构平坦和尽可能非规范化。查询父节点将加载所有子节点和数据。
是的,您仍然可以使用可用的SDK来使用查询/过滤器。