2017-07-15 171 views

回答

0

您可以通过使用观测到的URL参考,并初始化其值的数组读取它。

ref = Database.database().reference() 

ref.child("sectionList").child("name of").child("urls")observe(.value, with: { (snapshot:FIRDataSnapshot) in 

    var urls : [String] = snapshot.children 

} 

“这个函数有两个参数:FIRDataEventType和封闭的实例 事件类型指定要听什么事件中的代码侦听.value的事件类型,这反过来侦听。所有类型的Firebase数据库中的数据更改 - 添加,删除和更改 当更改发生时,数据库将使用最新数据更新应用程序 通过闭包通知应用程序更改传递一个FIRDataSnapshot的实例,顾名思义,快照代表特定时刻的数据,要访问快照中的数据,可以使用value属性。 来源:(https://www.raywenderlich.com/139322/firebase-tutorial-getting-started-2

+0

我无法将snapshot.children转换为[String] – L1GhTUA

+0

是的,这就是我的想法。 snapshot.children是一个JSON,而不是一个数组。它可以被转换成类型为[String:AnyObject]()的字典 –

0

我得到了它这样的

let ref = Database.database().reference(withPath: "sectionList") 
    ref.child("name of").child("urls").observeSingleEvent(of: .value, with: { (dataSnapshot:DataSnapshot) in 
     for object in dataSnapshot.children.allObjects as! [DataSnapshot] { 
      for obj in object.value as! NSArray { 
       print("value = \(obj)") 
      } 
     } 

    }) 
0

基本上,我强烈建议更换你看看this教程,特别是有关检索数据的一部分。要在标准MVC模型中划分您的项目将非常有用。我希望我的回答会帮助你;)