如果不允许用户在firestore中更新文档,那么它也不允许使用merge进行设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果不允许用户在firestore中更新文档,那么它也不允许使用merge进行设置?相关的知识,希望对你有一定的参考价值。

我正在为每个用户创建文档,当他们使用云功能注册(使用firebase身份验证)之后,我不希望用户可以在此文档中设置合并任何额外字段,但用户可以更新现有字段。我该怎么做?

set({a:{b:{c:true}}},{merge:true})

答案

一种方法是使用Firestore安全规则“验证您的架构”。

观看2018年Firebase峰会的视频,特别是提示#3:https://www.youtube.com/watch?v=pvLkkLjHdkw&t=9m02s

所以在视频之后,你会做类似的事情:

 ......
 allow update: if request.resource.data.size() == 3
               && request.resource.data.project is string
               && request.resource.data.project.size() > 1
               && request.resource.data.project.size() < 64
               && request.resource.data.userName is string
               && request.resource.data.userPreferredColor is string  
 ....

以上是关于如果不允许用户在firestore中更新文档,那么它也不允许使用merge进行设置?的主要内容,如果未能解决你的问题,请参考以下文章

除非我先刷新,否则 React 应用程序中的 Firestore 文档字段更新会给出 TypeError

我是否可以在不立即呈现更改的情况下更新Firestore文档?

Firestore 规则:允许使用密码访问文档

如何更新单个 Firebase Firestore 文档

Firestore - 使用缓存直到在线内容更新

获取值不在数组中的 Firestore 文档