Firebase:如何从子节点swift中提取子键值

gk1*_*103 1 firebase swift

如何提取孩子的ID值(即followerID1,followerID2 ......)?firebase的结构如下:

Followers:{
    USER_ID:{
        followerID1 = false;
        followerID2 = true;
        followerID3 = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在xCode中执行以下操作,但它显示了USER_ID下的整个节点:

self.databaseRef.child("Followers").child(self.USER_ID).Value, withBlock: { (snapshot:FIRDataSnapshot) in
          self.userFollowDump = snapshot
 })
Run Code Online (Sandbox Code Playgroud)

谢谢!我是firebase的新手:)

Dra*_*ian 5

试试这个:-

  • 斯威夫特3

    FIRDatabase.database().reference().child("Followers").child(FIRAuth.auth()!.currentUser!.uid).observeSingleEvent(of: .value, with: { (snapshot) in
            if let userDict = snapshot.value as? [String:AnyObject]{
                for each in userDict{
                    let follwerID = each.0 as! String // Every follwers ID.
                }
            }
        })
    
    Run Code Online (Sandbox Code Playgroud)

    如果你正在寻找追随者的价值观true.

        FIRDatabase.database().reference().child("Followers").child(FIRAuth.auth()!.currentUser!.uid).queryOrderedByValue().queryEqual(toValue: true).observeSingleEvent(of: .value, with: {(snap) in
            if let snapDict = snap.value as? [String:AnyObject]{
                for each in snapDict{
    
                    print(each.key)
                }
            }
        })
    
    Run Code Online (Sandbox Code Playgroud)
  • 斯威夫特2

    FIRDatabase.database().reference().child("Followers").child(FIRAuth.auth()!.currentUser!.uid).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
     if let userDict = snapshot.value as? [String:AnyObject]{
          for each in userDict{
             let follwerID = each.0 as! String // Every follwers ID.
             }
         }
      })
    
    Run Code Online (Sandbox Code Playgroud)

    但是如果你正在寻找追随者的价值观true

    FIRDatabase.database().reference().child("Followers").child(FIRAuth.auth()!.currentUser!.uid).queryOrderedByValue().queryEqualToValue(true).observeSingleEventOfType(.Value, withBlock: {(snap) in
         if let snapDict = snap.value as? [String:AnyObject]{
           for each in snapDict{
    
                print(each.key)
            }
        }
    }) 
    
    Run Code Online (Sandbox Code Playgroud)