Ios Swift:无法更新Firebase DB值
当我按下按钮时,我试图将Firebase DB中某个条目的值从false更新为true。我可以使用以下代码获取当前快照的值:Ios Swift:无法更新Firebase DB值,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,当我按下按钮时,我试图将Firebase DB中某个条目的值从false更新为true。我可以使用以下代码获取当前快照的值: @IBAction func test(_ sender: Any) { ref.child("Sell_Request").queryOrdered(byChild: "name").queryEqual(toValue: requestUsername).observeSingleEvent(of: .value, with: { (snapshot : FIRDa
@IBAction func test(_ sender: Any) {
ref.child("Sell_Request").queryOrdered(byChild: "name").queryEqual(toValue: requestUsername).observeSingleEvent(of: .value, with: { (snapshot : FIRDataSnapshot) in
print(snapshot)
})
}
我试图使用下面的代码将“Request_make”的值从false更新为true,但得到的是SIGBRT
@IBAction func test(_ sender: Any) {
ref.child("Sell_Request").queryOrdered(byChild: "name").queryEqual(toValue: requestUsername).setValue(true, forKey: "Request_Made");
}
以下是我的数据库条目在FireBase中的外观:
我认为您仍然需要观察查询
@IBAction func test(_ sender: Any) {
ref.child("Sell_Request").queryOrdered(byChild: "name").queryEqual(toValue: requestUsername).observeSingleEvent(of: .value, with: { snapshot in
for child in snapshot.children {
if let item = child as? FIRDataSnapshot {
item.ref.setValue(true, forKey: "Request_Made");
}
}
}
}
这是正确的方法
ref.child("Sell_Request").queryOrdered(byChild: "name").queryEqual(toValue: requestUsername).observeSingleEvent(.value, with: { dataSnapshot in
let enumerator = dataSnapshot.children
while let sell_request = enumerator.nextObject() as? FIRDataSnapshot {
sell_request.ref.child("Request_Made").setValue(true)
}
})
无需从根目录重建引用。你可以使用
sell\u request.ref.child(“request\u Made”).setValue(false)
你们真是太棒了!谢谢你们两个!!我希望我能给你们两个最好的答案,因为两者都有效。非常感谢。没问题。很高兴它对你有用。将来,如果这两种方法都同样有效,那么首先发布的问题通常会被选为答案。快乐编码!