安全规则 - 可以读取的数据列表?

时间:2013-08-31 17:33:52

标签: firebase firebase-security

因此,我的应用程序具有许多用户共享的“对话”。 “对话”有很多“用户”。

我能够在特定对话中使用模拟器授权作者获得“.read”,但我不确定如何以用户身份登录时获取对话列表 - 我无法使用{ {1}}关于“对话”,因为.read不允许在“对话”中使用。仅限于某些孩子,具体取决于登录用户。

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:3)

我们不建议使用安全规则来实现对记录的过滤。您可以在全局列表下存储会话列表,但是然后将这些会话的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”)将允许您访问用户有权访问的所有会话。确保在顶级对话列表中正确设置权限。

有关如何在Firebase中构建数据的更多背景信息,请参阅https://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.html