обновление значений с помощью firebase - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть ссылка на firebase, и я хочу обновить ссылку на firebase, но мое приложение вылетает, когда я пытаюсь это сделать Could not cast value of type '__NSCFBoolean' (0x2106be078) to 'NSDictionary'

мой реф выглядит так

Database.database().reference(forLastMsg: championId).child(toID).updateChildValues(withValues)
                                Database.database().reference(forLastMsg: toID).child(championId).updateChildValues(withValues)

даже при использовании setValue приложение тоже вылетает.

Я на самом деле постоянно перечисляю ссылки, которые были обновлены, поэтому на valueChange

for snapshot in snapshot.children {
                        let receivedMessage = (snapshot as! DataSnapshot).value as!
                            NSDictionary
...

enter image description here

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Вы должны обновить его таким образом

let updateDatabase = databaseReference.child("something").child(someId)

    let data = [
        "boolValue": myBoolean,
        "dateUpdated": Date().toSeconds()
        ] as [String : Any]

    updateDatabase.updateChildValues(data)
0 голосов
/ 09 апреля 2019

Для обновления

let newVal = //// some dictionary 
 // you may add komal_xyz as dynamic according to your logic
Database.database().reference().child("komal_xyz/\(id)").updateChildValues(newVal) { (err, ref) in

}

Для прослушивания

Database.database().reference().child("komal_xyz/\(id)").observe(.value) { (ref) in
   //  

   let res = ref.value as! [String:Any]    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...