Ios 抓取Firebase中一个子节点的所有子节点?
我正在为我想在Firebase做的事情而挣扎。我似乎不知道该怎么做。我已经找到了一个答案:我想使用Javascript方法,但似乎无法使用iOS。我拥有的是一组数据,看起来像这样: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
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添加的
来获取与会者。在iOSchild\u added
上翻译为feventypechildadded
,并记录在这里:如果你想使用.Value
,这个问题似乎有一个迭代子项的例子:当你有一些有意义的事情,比如“事件”和“与会者”,请不要使用像“child”这样的通用术语。所以,你可以说,我要的不是“我要孩子的所有孩子”,而是活动的所有参与者——JFSDFHdsf89498432。当你用这个问题更新问题时,还请说明你如何调用
getAttendeers`以及你传递的child
的值。在我的评论()中,我使用了child\u添加的
来获取与会者。在iOSchild\u added
上转换为feventypechildadded
,并记录在此处:如果要使用.Value
,此问题似乎有一个迭代子对象的示例: