因此,我的应用程序具有在许多用户之间共享的“对话”。 “对话”有很多“用户”。
我可以在特定对话中使用模拟器让作者获得“.read”授权,但我不确定如何在以用户身份登录时获取对话列表 - 我无法使用.on("child_added")
在“对话”上,因为“对话”上不允许 .read,仅在其某些子项上允许,具体取决于登录用户。
我应该如何进行?
Thanks!
我们不建议使用安全规则作为实现记录过滤的方法。您可以将对话列表存储在全局列表下,然后将这些对话的 ID 存储在有权访问这些对话的每个用户下。这意味着您还必须确保每个用户的对话列表在发生更改时都会更新。
/conversations
<conversation-id-1>
<conversation-id-2>
/users
<user-1>
/conversations
<conversation-id-1>: true
<user-2>
/conversations
<conversation-id-2>: true
在 /users/user1/conversations 上执行 .on("child_added") 将使您能够访问该用户有权访问的所有对话。确保正确设置顶级对话列表的权限。
See https://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.html了解有关如何在 Firebase 中构建数据的更多背景信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)