firebase - 只允许付费用户写入特定字段?
问题描述
我有一个所有用户都可以写入的文档,但我想将写入此文档中的特定字段或特定数据的内容仅限于付费用户。
我知道如何创建规则以允许基于某个字段写入某个文档 - 但是如何使该规则仅在您写入某个字段时才有效?(没有写)
allow write,update: if request.resource.data.brand.userID == request.auth.uid;
仅当书面文档包含 field 时,我如何允许将某个字段logo
( ) 写入文档。(但继续允许其他字段自由写入){"logo":"me.png"}
"paid":true
或者 - 是否有最佳实践方法来做到这一点?
解决方案
在您的安全规则中,您也可以从数据库访问文档。因此,如果文档包含paid
字段,您可以像if resource.data.paid == true
. 有关详细信息,请参阅数据验证。
由于您也可以使用请求中的文档,因此完整条件应类似于:
if resource.data.paid == true || !(logo in request.resource.data)
推荐阅读
- java - 如何以编程方式将 TextView 与 ImageView 的中心对齐?
- excel - 在 Excel 中平均动态范围
- python - 无法弄清楚为什么五边形被错误地绘制并且不像其他形状那样向右移动
- pandas - TypeError to_gbq() 得到了一个意外的关键字参数“位置”
- c++ - 在模板类中实例化嵌套模板函数
- r - 使用列表值拆分列并收集到 r
- bash - 使用大括号扩展在命令行上移动文件
- python-3.x - 如果在第一组中找不到,如何遍历第二组数据?
- node.js - 在 React Native 中存储密钥的最安全方式是什么
- laravel - Vue:在它自己的 Github 仓库中有前端?