request.writeFields.size()计算用“serverTimestamp()"设置的字段;两次

时间:2018-05-22 15:29:00

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

问题类似于request.writeFields.size() does not count fields updated with “serverTimestamp()”

但其他方面则更为复杂。

我尝试使用一个和两个字段编写文档,包含和不使用options : SetOptions.merge()

夫特:

db.collection(collectionName).document().setData(["time" : FieldValue.serverTimestamp()]) 
db.collection(collectionName).document().setData(["time" : FieldValue.serverTimestamp()], options: SetOptions.merge())
db.collection(collectionName).document().setData(["user": "test",
                                                  "time" : FieldValue.serverTimestamp()])
db.collection(collectionName).document().setData(["user": "test",
                                                  "time" : FieldValue.serverTimestamp()], options: SetOptions.merge())

Firestore规则:

request.writeFields.size() == 1 - 选项为False,没有任意数量字段的选项为True。

request.writeFields.size() == 2 - 选项和一个字段为真。在其他情况下是假的。

request.writeFields.size() == 3 - 选项和两个字段为真。在其他情况下是假的。

等等。

与现有文件相同。

对于上述情况,Date()而不是FieldValue.serverTimestamp()是正常的但是 'time' in request.writeFields如果没有选项则为False,而True为。使用FieldValue.serverTimestamp()'time' in request.writeFields始终为True。

这可能是Firestore的错误,还是我错过了什么?

0 个答案:

没有答案