由于Firestore还没有模拟器,我无法100%确定我所说的内容。
但是,根据我的测试,在规则文档中使用class MyBaseClass {
private httpClient2: HttpClient;
constructor(httpClient2: HttpClient) {
this.httpClient2 = httpClient2;
}
}
不会计算使用request.writeFields.size()
更新的字段。
例如,如果执行以下代码:
firebase.firestore.FieldValue.serverTimestamp()
请求db.collection("myCollection").doc(id).update({
someString: 'abcd',
someTimestamp: new Date("October 13, 2014 11:13:00")
anotherTimestamp: firebase.firestore.FieldValue.serverTimestamp(),
})
将失败的写规则将返回权限错误。如果它已更改为request.writeFields.size() == 3
,那么它可以正常工作。
类似地:
request.writeFields.size() == 2
将返回'someString' in request.writeFields
。
true
将返回'someTimestamp' in request.writeFields
。
true
将返回'anotherTimestamp' in request.writeFields
。
这可能是Firestore的错误,还是我错过了什么?