问题类似于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的错误,还是我错过了什么?