Проблема похожа на request.writeFields.size () не считает поля, обновленные с помощью «serverTimestamp ()»
, но в остальном и немного сложнее.
Я пытаюсь написать документы с одним и двумя полями, как с, так и без options : SetOptions.merge()
Swift:
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())
Правила хранения файлов:
request.writeFields.size() == 1
-False с параметрами и True без параметров для любого количества полей.
request.writeFields.size() == 2
- True с параметрами и одним полем.False в других случаях.
request.writeFields.size() == 3
- True с параметрами и двумя полями.False в других случаях.
и т. Д.
То же самое с существующим документом.
Date () вместо FieldValue.serverTimestamp () подходит для вышеуказанных случаев, но 'time' in request.writeFields
является ложным без параметров и истинным с.С FieldValue.serverTimestamp () 'time' in request.writeFields
всегда имеет значение True.
Может ли это быть ошибкой Firestore или я что-то упустил?