firestore:用户可以创建但不能覆盖现有的属于另一个用户

时间:2018-01-27 06:37:33

标签: firebase firebase-authentication google-cloud-firestore

所以看看我的火库规则,我认为用户有可能超越另一个用户的文档。

我有一个看起来像

的写规则
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;

仅适用于文档创建?

1 个答案:

答案 0 :(得分:1)

在文档中阅读granular operations

  

在某些情况下,将读写分解为更多内容非常有用   粒度操作。例如,您的应用可能希望强制执行   文档创建的条件不同于文档删除的条件。   或者您可能希望允许单个文档读取但拒绝大型查询。

     

读取规则可以分为get和list,而写入规则可以   分为创建,更新和删除。

所以,你可以在你的规则中说出这样的话:

allow create: if <condition>;

仅适用于文档创建。