如何构建Firebase数据和规则以在用户之间共享数据?

时间:2013-07-22 22:19:49

标签: firebase firebase-security

目前我有一个简单的待办事项应用程序,用户可以创建一个列表,然后勾选项目。数据结构如下:'/ acc_'+ USER_ID +'/ done'和'/ acc_'+ USER_ID +'/ todo'。当项目“完成”时,它们将被移动到完成列表。

我希望用户能够与其他经过身份验证的用户共享列表。

目前的规则似乎如下所示。

{
  "rules": {
        "$userPath": {
            ".read": "auth != null",
            ".write": "auth != null",
            ".validate": "$userPath === 'acc_' + auth.id"
        }
    }
}

我认为我需要做的是让每个拥有一系列经批准的电子邮件地址的用户以某种方式将其挂钩到安全规则中。

或者,我可以在根目录中创建一个列表,只有创建者和共享用户才能访问它。

任何指导?

1 个答案:

答案 0 :(得分:1)

由于用户决定与谁共享列表,我会将该信息存储在用户数据本身中。例如:

{
  "rules": {
    "$userPath": {
      ".write": "$userPath == 'acc_' + auth.id",
      ".read": "$userPath == 'acc_' + auth.id || root.child($userPath).child('shared').hasChild(auth.id)"
    }
  }
}

然后在acc_userid/shared/

中存储共享数据的用户列表