如何在Firebase实时数据库中仅禁用单个节点的读取权限
Firebase实时数据库规则配置方案
根据你的需求,只需要在现有规则基础上,给companies节点添加更具体的权限配置即可——Firebase实时数据库的规则是路径匹配优先级高于通用规则的,所以针对特定节点的配置会覆盖根节点的默认规则。
下面是具体的规则代码:
{ "rules": { ".read": "auth != null", ".write": false, "companies": { ".read": false, ".write": false } } }
配置说明:
- 根节点的
.read: "auth != null"会作用于所有未单独配置权限的节点,完美满足你“其余大量节点保持原有读取权限”的需求。 companies节点单独设置.read: false,直接禁用前端对该节点的读取权限;同时设置.write: false,确保前端也无法直接写入(毕竟你明确读写都通过云函数处理)。- 云函数使用Firebase Admin SDK操作数据库时,会绕过这些客户端规则限制,所以完全不用担心云函数的读写权限问题——Admin SDK拥有数据库的完全访问权限,不受客户端规则约束。
这样配置后,除了companies节点外,其他所有节点依然需要用户认证后才能读取,而companies节点的前端直接读写请求都会被拒绝,只能通过你的云函数来处理相关操作。
内容的提问来源于stack exchange,提问作者Marwan Ze
相关产品推荐
相关产品推荐

