2016-10-27 108 views
1

我试着使用for child in snapShot.children我知道当时我曾经是能够使它发挥作用创造一个火力点childSnapshot,林不知道这是否是在新的更新如何检索Firebase中的子快照?

是用来工作

-old方式的变革
for child in snapshot.children {     
         let firUserId = child.childSnapshot(forPath: "userId").value! as! String 
        let receivePostSnapshot = child.childSnapshot(forPath: "receivePost") 
    } 

我当前的代码不工作

func displayAvailaibleHelprOnMap(){ 
let refUrl = "frontEnd/users" 
    let childRef = Ref.childRef(refUrl: refUrl)//.child("users") 
    childRef.observe(.value, with: {snapshot in 
    let dict = snapshot.value as? NSDictionary 

    for child in snapshot.children{ 
// I want to use child snapshot here 
//let childDict = child.childSnapshot(forPath: "receivePost") 
} 

} 
+0

如果*我当前的代码不工作*,到底是你的问题或错误? – Dravidian

+0

@Dravidian它应该说不行 – pprevalon

回答

3

尝试:

var ref: FIRDatabaseReference! 
    ref = FIRDatabase.database().reference() 
    ref.child("users").observeSingleEvent(of: .value, with: { (snapshot) in 
      if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] { 

       for snap in snapshots 
       { 
        let firUserId = child.childSnapshot(forPath: "userId").value! as! String 
        let receivePostSnapshot = child.childSnapshot(forPath: "receivePost") 
       } 
      } 
     }) 
0

试试这个

let mRef = mRestCallObj.getReferenceFirebase() 
          mRef!.child("users").queryOrderedByChild("receivePost").observeEventType(.ChildAdded, withBlock: { snapshot in 
     let userName = snapshot.value!["receivePost"] as? String 

}

0

尝试这个 -

let ref = FIRDatabase.database().reference().child("Users + infomation").child(userid).child("cats")` 
ref.observeSingleEventOfType(.Value, withBlock : {(snapShot) in 

     if let val = snapShot.value as? Int {print(snapShot)}