#swift #firebase #firebase-realtime-database
#swift #firebase #firebase-база данных в реальном времени
Вопрос:
У меня есть ссылка на 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
также приводит к сбою приложения.
На самом деле я постоянно просматриваю ссылки, которые были обновлены so на valueChange
for snapshot in snapshot.children {
let receivedMessage = (snapshot as! DataSnapshot).value as!
NSDictionary
...
Комментарии:
1. опубликовать структуру базы данных
2. Я добавил структуру
3. можете ли вы показать ссылку на код, который вы прослушиваете, также предпочтительно со статическими именами, чтобы следовать за ним вместо ваших динамических переменных
Ответ №1:
Вы должны обновить его таким образом
let updateDatabase = databaseReference.child("something").child(someId)
let data = [
"boolValue": myBoolean,
"dateUpdated": Date().toSeconds()
] as [String : Any]
updateDatabase.updateChildValues(data)
Ответ №2:
Для обновления
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]
}