Сбой транзакции Firestore при чтении - PullRequest
0 голосов
/ 29 мая 2018

При выполнении от transaction до firestore моя первоначальная операция чтения завершается с ошибкой всей транзакции со следующей ошибкой: "nilError".

Просто любопытно, если вы не можете завершить transaction, если документссылка не существует в первую очередь?Не удалось найти четкого ответа в документах для transaction в iOS.

Я надеялся, что чтение было фактически нулевым, если ссылка на документ в настоящее время не существует, чтобы впоследствии выполнить setDataпо сравнению с updateData операцией записи.

var db = Firestore.firestore()

db.runTransaction({ (transaction, errorPointer) -> Any? in

var document: DocumentSnapshot

do {

    try document = transaction.getDocument(self.db.document("path/nestedPath"))

} catch let fetchError as NSError {
    //Errors here.
    errorPointer?.pointee = fetchError
    return nil
}

if let documentData = document.data() {
    transaction.updateData([x: y], forDocument: db.document("path/nestedPath"))
}
else {
    transaction.setData([x : z], forDocument: db.document("path/nestedPath"))
}

return nil
})

{ (object, error) in
if let error = error {
    print("Transcation Completion Error: \(error)")
} else {
    print("Transaction Succeeded!")
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...