jac*_*314 3 firebase google-cloud-firestore firebase-security-rules
我试图将对Firestore的某些操作限制为创建或附加到数组。我应该怎么做?我怎样才能辨别arrayUnion()从arrayDelete()?将数组操作与所有其他操作区分开来怎么办?
更新:到目前为止,从我深入研究Firestore API所得的信息来看,我猜测可能可以进行某些操作allow create, FieldValue.arrayUnion: if true,但是我尚未对其进行测试,将在测试时进行更新。
如果要确保对文档的任何更新都不会从数组中删除现有值,那么您正在寻找hasAll:
allow update: if request.resource.data.arrayField.hasAll(resource.data.arrayField);
Run Code Online (Sandbox Code Playgroud)
我刚刚在模拟器中对此进行了快速测试。更新具有的文档arrayField: ["value1", "value2"],我:
arrayField: ["value1"]arrayField: ["value1", "value2"]arrayField: ["value1", "value2", "value3"]| 归档时间: |
|
| 查看次数: |
500 次 |
| 最近记录: |