2 Pytanie: aktualizowanie wartości za pomocą firebase

pytanie utworzone w Tue, Apr 9, 2019 12:00 AM

Mam refbase ref i chcę zaktualizować ref z bazy firebase, ale moja aplikacja ulega awarii, gdy tylko spróbuję Could not cast value of type '__NSCFBoolean' (0x2106be078) to 'NSDictionary'

mój ref wygląda tak poniżej

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

Nawet używanie setValue powoduje awarię aplikacji.

Właściwie ciągle słucham refów, które zostały zaktualizowane, więc na valueChange

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

 wprowadź opis obrazu tutaj>> </p>
    </div>
<div class = 0

  1. opublikuj strukturę bazy danych
    2019-04-09 11: 27: 16Z
  2. Dodałem strukturę
    2019-04-09 11: 30: 01Z
  3. czy możesz pokazać kod, którego chcesz posłuchać, najlepiej także ze statycznymi nazwami, aby go śledzić zamiast zmiennych dynamicznych
    2019-04-09 11: 33: 33Z
2 odpowiedzi                              2                         

Aby zaktualizować

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

}

Aby słuchać

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

   let res = ref.value as! [String:Any]    
}
    
0
2019-04-09 11: 40: 47Z

Musisz to zaktualizować w taki sposób

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

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

    updateDatabase.updateChildValues(data)
    
1
2019-04-09 11: 39: 36Z
źródło umieszczone tutaj