Успешная запись в Firestore не отражена в данных - PullRequest
0 голосов
/ 20 февраля 2020

Я ожидаю, что данные для поля документа будут обновлены с помощью записи setData (слияние), и это не так, несмотря на успешное завершение. UpdateData работает, но я не понимаю, почему setData не работает в этом случае.

Я выполняю следующие записи в Firestore и по следующим путям:

  1. setData to firstCollection / uniqueDo c
  2. в пакетном режиме setData в secondCollection / uniqueDoc1 (от 1 до 5 записей в пакете)
  3. транзакция updateData в thirdCollection / uniqueDo c

Никаких ошибок не выводится, все данные и синтаксис выглядят корректно, и записи № 2 плюс № 3 отражаются в данных успешно - № 1 - это тот, который этого не делает.

Любое руководство будет будьте благодарны.

Вот мой код для # 1 ...

func first() {
    //oldData is not empty and is the same type as var updatedData
    //oldData = [
    //             "a": ["name":"aName", "dateAdded": dateValue, "imageUrl": "aImageUrl"]
    //             "b": ["name":"bName", "dateAdded": dateValue, "imageUrl": "bImageUrl"]
    //          ]

    guard let oldData = oldData else { return }

    var updatedData: [String: NSDictionary] = [:]
    updatedData = oldData
    updatedData["a"] = nil                       

    db.collection(firstCollection).document(uniqueDocName).setData(["data": updatedData], 
       merge: true) { error in
         guard error == nil else {
            print("Error:" , error)
            return
         }
         self.runOtherFunc()
    }        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...