【发布时间】:2017-07-25 15:31:20
【问题描述】:
我正在使用 Firebase (Swift) 读取用户所属的组 id 列表,然后循环遍历这些 id 以获取有关组的更多信息。类似的东西(伪代码):
// List the names of all Mary's groups
var ref = new Firebase("https://docs-examples.firebaseio.com/web/org");
// fetch a list of Mary's groups
ref.child("users/mchen/groups").on('child_added', function(snapshot) {
// for each group, fetch the name and print it
String groupKey = snapshot.key();
ref.child("groups/" + groupKey + "/name").once('value', function(snapshot) {
System.out.println("Mary is a member of this group: " + snapshot.val());
});
});
我怎么知道所有 Firebase observeSingleEvent 都已执行完毕,以便我可以在我的集合视图中重新加载数据。
编辑:
经过更多研究,这看起来与question 非常相似。我可以使用dispatch_group 或Bolts framework
编辑2:
感谢@appzYourLife 的回答。我也能够使用RxSwift 解决它。我只是用观察者包装了 Firebase 调用并将它们保存在一个数组中,然后调用
Observable.zip(observables, { _ in }).subscribe(onCompleted: {
self.contentView.collection.reloadData() // do something here
})
【问题讨论】:
-
你的意思是如何处理 Firebase 的异步特性?使用回调还是调度队列?
-
您的代码看起来像是
Java和JavaScript的混合体。您确定要在Swift中寻找答案吗? -
@appzYourLife 是的
标签: ios swift firebase firebase-realtime-database