允许一些用户查看数据库

时间:2018-05-15 14:34:24

标签: android firebase

我希望用户能够允许其他用户访问他的数据。他选择是否拒绝访问或首先允许访问。然后,如果它被所有人拒绝,他可以一个接一个地允许,或者如果被允许的话,他可以一个一个地拒绝。

我想知道如何设计数据库,以便有可能选择。如果您指向一个简单的开源应用程序来完成此任务将会很有帮助。

1 个答案:

答案 0 :(得分:0)

使用database storage rules

这需要一些设置,但这是它的要点:

您应该创建两个分支:SharedPublishedShared涵盖 的访问权限使用情况,如果拒绝所有 Published涵盖 一个一个地拒绝如果允许所有

".write"Shared上的Published将仅限于所有者的{uid}。规则级联,因此您应该能够在所有者的根目录附近执行此操作。

Shared数据将包含代表共享数据的子(帖子)。每个共享数据都将包含一个隐藏分支,其中包含一个具有读访问权限的子项列表。您的.read规则应使用data.hasChild()检查用户是否已通过身份验证,以及他们的{uid}是否包含在隐藏的子分支中。可能类似于".read" : "auth !== null && data.child('.allow').hasChild(auth.uid) === true"

除了默认权限为true之外,

Published的工作方式相同。这意味着您的隐藏子分支将包含异常和".read" : "auth !== null && data.child('.deny').hasChild(auth.uid) === false"

在检查'hasChild'之前,您应该检查文件夹是否存在。如果缺少.deny,那么每个人都可以看到它,如果缺少.allow,那么没有人可以。

我还没有测试过这些。