Ios 抓取Firebase中一个子节点的所有子节点?

Ios 抓取Firebase中一个子节点的所有子节点?,ios,swift,firebase,children,Ios,Swift,Firebase,Children,我正在为我想在Firebase做的事情而挣扎。我似乎不知道该怎么做。我已经找到了一个答案:我想使用Javascript方法,但似乎无法使用iOS。我拥有的是一组数据,看起来像这样: events -JFSDFHdsf89498432 eventCreator: "Stephen" eventCreatorId: 1764137 -JOeDFJHFDSHJ14312 eventCreator: "puf" eventCreatorId: 892312 eve

我正在为我想在Firebase做的事情而挣扎。我似乎不知道该怎么做。我已经找到了一个答案:我想使用Javascript方法,但似乎无法使用iOS。我拥有的是一组数据,看起来像这样:

events
  -JFSDFHdsf89498432
    eventCreator: "Stephen"
    eventCreatorId: 1764137
  -JOeDFJHFDSHJ14312
    eventCreator: "puf"
    eventCreatorId: 892312
event_attendees
  -JFSDFHdsf89498432
    -JSAJKAS75478
      name: "Johnny Appleseed"
      objectID: "1"
    -JSAJKAS75412
      name: "use1871869"
      objectID: "2"
  -JOeDFJHFDSHJ14312
    -JaAasdhj1382
      name: "Frank van Puffelen"
      objectID: "3"
    -Jo1asd138921
      name: "use1871869"
      objectID: "4"
Array = [
 {name: "Johnny Appleseed", objectID: "1"},
 {name: "use1871869", objectID: "2"}
]
我想做的是在
活动参与者
参考中获取每个孩子的信息,并将这些信息存储到数据库中。例如,我想抓取
活动参与者
->
JFSDFHdsf89498432
->
JSAJKAS75478
->
姓名:Johnny Appleseed
objectID:“1”
,并将此信息存储到某种字典中。我想对
JFSDFHdsf89498432
子对象中的每个子对象执行此模式。最后,我的数组将如下所示:

events
  -JFSDFHdsf89498432
    eventCreator: "Stephen"
    eventCreatorId: 1764137
  -JOeDFJHFDSHJ14312
    eventCreator: "puf"
    eventCreatorId: 892312
event_attendees
  -JFSDFHdsf89498432
    -JSAJKAS75478
      name: "Johnny Appleseed"
      objectID: "1"
    -JSAJKAS75412
      name: "use1871869"
      objectID: "2"
  -JOeDFJHFDSHJ14312
    -JaAasdhj1382
      name: "Frank van Puffelen"
      objectID: "3"
    -Jo1asd138921
      name: "use1871869"
      objectID: "4"
Array = [
 {name: "Johnny Appleseed", objectID: "1"},
 {name: "use1871869", objectID: "2"}
]
执行此操作后,函数将通过完成处理程序返回此数组,从而完成函数。然而,我似乎找不到这样做的方法。以下是我的尝试:

func getAttendees(child: String, completion: (result: Bool, name: String?, objectID: String?) -> Void){
    //Get event attendees of particular event
    var attendeesReference = self.eventAttendeesRef.childByAppendingPath(child)
    var newArrayOfAttendees = [AnyObject]()

    println("Loading event attendees")
    //Get all event attendees

    attendeesReference.observeEventType(FEventType.Value, withBlock: { (snapshot) -> Void in

        for i in snapshot.children {
            newArrayOfAttendees.append(i)
            //This returns an entire snapshot which I'm not sure how to parse that looks like so:
            /*
                Snap (JFSDFHdsf89498432) {
                   name = "Johnny Appleseed";
                   objectID = "1";
                  }
            */
            //I also cannot seem to access i.value
            //because i.value gives me an error saying 
            //Could not find member 'init'
            //But the JavaScript version says you can do that via: https://www.firebase.com/docs/web/api/datasnapshot/foreach.html
            //But i.key returns me JFSDFHdsf89498432 which is correct.
        }
        completion(result: true, attendees: newArrayOfAttendees)
        }) { (error) -> Void in
            println(error.description)
    }

我似乎不知道如何获取子节点的所有子节点,将其存储到数组中,并将该数组传递给完成处理程序。如果有人能帮我,那就太好了。非常感谢你

当你有一些有意义的事情,比如“活动”和“与会者”时,请不要使用像“孩子”这样的通用术语。所以,你可以说,我要的不是“我要孩子的所有孩子”,而是活动的所有参与者——JFSDFHdsf89498432
。当你用这个问题更新问题时,还请说明你如何调用
getAttendeers`以及你传递的
child
的值。在我的评论()中,我使用了
child\u添加的
来获取与会者。在iOS
child\u added
上翻译为
feventypechildadded
,并记录在这里:如果你想使用
.Value
,这个问题似乎有一个迭代子项的例子:当你有一些有意义的事情,比如“事件”和“与会者”,请不要使用像“child”这样的通用术语。所以,你可以说,我要的不是“我要孩子的所有孩子”,而是活动的所有参与者——JFSDFHdsf89498432
。当你用这个问题更新问题时,还请说明你如何调用
getAttendeers`以及你传递的
child
的值。在我的评论()中,我使用了
child\u添加的
来获取与会者。在iOS
child\u added
上转换为
feventypechildadded
,并记录在此处:如果要使用
.Value
,此问题似乎有一个迭代子对象的示例: