【发布时间】:2017-10-07 13:43:33
【问题描述】:
我在 Firebase 中遇到用户具有角色的情况。根据已经在另一个“模式”中定义的一些配置文件,用户可以删除、更新、创建、删除和更新等...进行了许多组合。
例如:
Users/:
user_1:
create: "ok"
delete: "no"
update: "ok"
user_2:
create: "no"
... etc ...
一旦“.write”权限不接受动态条件,如何在firebase中管理这个?我发现Bolt有一些别名(create(),update(), delete()) 但是,您只需要创建 OR 更新 OR 删除。一旦定义了您就无法更改。
谢谢
【问题讨论】:
-
也许尝试为每个用户创建一个 linux chmod 样式的字段并以这种方式创建权限?这样您就只有一个字段,并且在您的权限中定义所有组合一次。
-
确切地说,Bolt 是一个实验性的安全和规则编译器,处于测试阶段。
-
嗨@PrestonGarno。是的,这行得通。恢复角色是可能的,但符合代表角色的条件是我不知道该怎么做的部分。您可以恢复 777 或 765 等角色,但您不能根据此更改 firebase 中 .write 的规则。
-
我从未使用过 Bolt,但我记得在标准 Firebase 规则中,您可以根据节点上的字段值设置权限,不是吗?还有我记得实现的自定义用户令牌。我确实记得它很有挑战性!您是否检查过更新的 (Google) API 文档? firebase.google.com/docs/database/security/user-security
-
我的意思是,在 firebase 规则文件的 .write/.read 规则中,您将写出 chmod 规则的所有不同组合。然后只需有一个名为“访问”的字段,或者为每个用户提供一个数字,代表他们在数据库的特定“分支”上的访问级别。然后,当您想要更改其访问权限时,只需更改每个用户的编号。
标签: firebase firebase-realtime-database firebase-security