【发布时间】:2018-03-13 14:08:26
【问题描述】:
我需要一些有关异步任务和 Firebase 的帮助。我需要在 Firebase 实时数据库中保存 n 个元素,但我不知道如何处理回调。
这是我的代码:
TagRepository tagRepository = new TagRepository();
for (Tag tag : databaseTags){
if (user.getTags().containsKey(tag.getId())){
Completable completable = tagRepository.saveUserOnTag(String.valueOf(tag.getId()), user.getUid());
}else{
tagRepository.removeUserOnTag(String.valueOf(tag.getId()), user.getUid());
}
}
public Completable saveUserOnTag(String idTag, String userUid) {
return io.reactivex.Completable.create(emitter->{
reference.child(idTag).child("users/").child(userUid).setValue(true).addOnCompleteListener(task -> emitter.onComplete());
});
}
如果我在这个方法上使用回调,回调将被调用 n 次,所以我不知道如何知道它们何时都已保存,以便继续。
正如您在方法上看到的那样,我正在尝试使用 Completable 进行一些操作,但我真的不知道如何处理它。有什么简单的方法可以同时保存所有数据或控制所有正在保存的数据?
【问题讨论】:
-
你可以先收集你所有的物品并将它们保存在一个更新中,就像它显示的in the docs
标签: android firebase firebase-realtime-database rx-java2 rx-android