Ios Swift:无法更新Firebase DB值

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

当我按下按钮时,我试图将Firebase DB中某个条目的值从false更新为true。我可以使用以下代码获取当前快照的值:

@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)
你们真是太棒了!谢谢你们两个!!我希望我能给你们两个最好的答案,因为两者都有效。非常感谢。没问题。很高兴它对你有用。将来,如果这两种方法都同样有效,那么首先发布的问题通常会被选为答案。快乐编码!