updateChildValues ​​() не работает, но setValue () работает - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь реализовать разветвление, и вот проблема: когда я пытаюсь updateChildValues в моей ссылке usersOrdersRef, это просто ничего не делает.Я ожидаю, что он создаст узел user_orders и дочерний узел с моим userid и поместит туда значение.

Если я использую setValues, он работает нормально, но мне нужно добавить значения безудаляя все предыдущие данные.Что я делаю не так?

Код:

for item in orderArray {
    let childRef = ref.child(item.date!)

    //this works fine
    childRef.updateChildValues(item.convertToDictionary() as! [AnyHashable : Any]) { [unowned self] (error, reference) in
        if error != nil {
            print(String(describing: error?.localizedDescription))
        }

        let usersOrdersRef = Database.database().reference().child("users-orders").child(self.appUser.uid)
        var primary = false
        if (item.precursor == "") { primary = true }

        //this does not work, but if i use "setValue" instead it will store data
        usersOrdersRef.updateChildValues([item.date : primary])
    }
}

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Ваша проблема:

//this does not work, but if i use "setValue" instead it will store data
    usersOrdersRef.updateChildValues([item.date : primary])

Я оказался в такой же ситуации.

Проблема заключалась в типе данных ключа .Когда я бросил ключ в строку, он начал функционировать.

Надеюсь, это поможет кому-то в такой же ситуации.

0 голосов
/ 17 февраля 2019

Я разрешаю это сам, теперь это работает следующим образом

let usersOrdersRef = Database.database().reference().child("users-orders").child(self.appUser.uid).child(item.date!) var primary = false if (item.precursor == "") { primary = true } usersOrdersRef.setValue(primary)

В этом случае setValue не удаляет все предыдущие данные, просто добавляет новые

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...