我希望用户能够允许其他用户访问他的数据。他选择是否拒绝访问或首先允许访问。然后,如果它被所有人拒绝,他可以一个接一个地允许,或者如果被允许的话,他可以一个一个地拒绝。
我想知道如何设计数据库,以便有可能选择。如果您指向一个简单的开源应用程序来完成此任务将会很有帮助。
答案 0 :(得分:0)
这需要一些设置,但这是它的要点:
您应该创建两个分支:Shared
和Published
。 Shared
涵盖 的访问权限使用情况,如果拒绝所有 ,Published
涵盖 一个一个地拒绝如果允许所有 。
".write"
和Shared
上的Published
将仅限于所有者的{uid}。规则级联,因此您应该能够在所有者的根目录附近执行此操作。
Shared
数据将包含代表共享数据的子(帖子)。每个共享数据都将包含一个隐藏分支,其中包含一个具有读访问权限的子项列表。您的.read
规则应使用data.hasChild()检查用户是否已通过身份验证,以及他们的{uid}是否包含在隐藏的子分支中。可能类似于".read" : "auth !== null && data.child('.allow').hasChild(auth.uid) === true"
Published
的工作方式相同。这意味着您的隐藏子分支将包含异常和".read" : "auth !== null && data.child('.deny').hasChild(auth.uid) === false"
在检查'hasChild'之前,您应该检查文件夹是否存在。如果缺少.deny
,那么每个人都可以看到它,如果缺少.allow
,那么没有人可以。
我还没有测试过这些。