6

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

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

当前的规则如下所示,似乎有效。

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

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

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

有什么指导吗?

4

1 回答 1

1

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

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

然后将数据共享的用户列表存储在acc_userid/shared/

于 2013-07-22T23:24:39.950 回答