所以看看我的火库规则,我认为用户有可能超越另一个用户的文档。
我有一个看起来像
的写规则allow write: if request.auth.uid == resource.data.owner_uid
|| request.auth.uid == request.resource.data.owner_uid;
这里的问题我想的是,如果用户通过在uid
字段中传递owner_uid
来更新他们不拥有的现有文档,他们将有效地接管所有权文件。
如何更好地制作写规则
request.auth.uid == request.resource.data.owner_uid;
仅适用于文档创建?
答案 0 :(得分:1)
在文档中阅读granular operations:
在某些情况下,将读写分解为更多内容非常有用 粒度操作。例如,您的应用可能希望强制执行 文档创建的条件不同于文档删除的条件。 或者您可能希望允许单个文档读取但拒绝大型查询。
读取规则可以分为get和list,而写入规则可以 分为创建,更新和删除。
所以,你可以在你的规则中说出这样的话:
allow create: if <condition>;
仅适用于文档创建。