request.writeFields.size () подсчитывает поля, установленные с помощью «serverTimestamp ()» дважды - PullRequest
0 голосов
/ 22 мая 2018

Проблема похожа на 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 или я что-то упустил?

...