Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检索firebase中childByAutoID存储的数据_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Swift 检索firebase中childByAutoID存储的数据

Swift 检索firebase中childByAutoID存储的数据,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,在firebase中,我试图通过使用childByAutoID()为数据提供唯一标识符来检索存储在firebase实时数据库中的数据,但问题是我不完全确定如何实现这一点 func retData(){ rootRef.child("users").child(userID).ChildByAutoID().observeEventType(.Value){ (snap: FIRDataSnapshot) in self.simpleLabel.text = sn

在firebase中,我试图通过使用childByAutoID()为数据提供唯一标识符来检索存储在firebase实时数据库中的数据,但问题是我不完全确定如何实现这一点

func retData(){
    rootRef.child("users").child(userID).ChildByAutoID().observeEventType(.Value){
        (snap: FIRDataSnapshot) in

    self.simpleLabel.text = snap.value?.description

    }   
 }
Json数据结构

-userID
   -childByAutoID
      -player1
         -email 

如果您的JSON结构是:-

-users
  -childByAutoID
    -playerID
      -email
使用:-

 rootRef.child("users").observeEventType(.Value, withBlock: {(snap) in

           if let userDict = snap.value as? [String:AnyObject]{

               for each in userDict as [String: AnyObject] {

                   let autoID = each.0
                   //Here you retrieve your autoID

                   rootRef.child("users").child(autoID).child("player1").observeEventType(.Value, withBlock: {(playersDict) in
                      if let playerDictionary = playerDict.value as? [String:AnyObject]{
                        let emailID = playerDictionary["email"] as! String

                          //print(emailID)

                     }
             })
      }
   }
})

什么是
userID
,因为我在你的Json树中没有看到它。我不确定我是否理解你想做什么
ChildByAutoId()
是写入数据库时使用的方法,而
observeEventType()
用于读取。你是否试图监听用户被添加到用户列表中的时间?忘记将其包含在问题中,@FrankvanPuffelen只是将数据检索到标签中。我为问题提交了错误的json结构,而它只是打印出整个json树,当我再次尝试打印输出时,代码由于一些奇怪的原因无法运行,它应该说player1和no,这两者都不是,只是一个用于电子邮件的父级。此外,它不会在您在回答中所说的打印(emailID)之间打印任何内容。如果它有效,可以-其他方式转到您的DB控制台单击仪表板右上角的三个点,单击导出JSON并将其作为文本粘贴到您的问题中。