如何等到firebase保存所有数据?

谢尔马诺

我需要一些有关异步任务和 Firebase 的帮助。我需要在 Firebase 实时数据库上保存n 个itens,但我不知道如何处理回调。

这是我的代码:

 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 进行一些操作,但我真的不知道如何处理它。有什么简单的方法可以同时保存所有数据或控制正在保存的所有数据??

威利克

抱歉,我不知道 Rx,但这里有一种方法可以在一个 API 调用中插入所有数据。onComplete()方法是更新完成回调。

Map<String, Object> values = new HashMap<>();
for (Tag tag : databaseTags){
    if (user.getTags().containsKey(tag.getId())){
        values.put(idTag + "/users/" + userUid, true);
    }else{
        tagRepository.removeUserOnTag(String.valueOf(tag.getId()), user.getUid());
    }
}

reference.updateChildren(values, new DatabaseReference.CompletionListener() {
    @Override
    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
        // all data saved, do next action
    }
});

希望这可以帮助 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何等到数据发送 Firebase

来自分类Dev

如何等待渲染组件,直到在Angular 2中收集了所有数据

来自分类Dev

如何从Firebase数据库获取所有数据?

来自分类Dev

如何实时查询Firebase中的所有数据?

来自分类Dev

如何从 firebase 获取所有数据到 list<myObject>

来自分类Dev

如何等待回调具有数据?

来自分类Dev

如何等到所有页面加载后才能获取这些页面的元素?

来自分类Dev

如何等到所有页面加载后才能获取这些页面的元素?

来自分类Dev

Java不保存所有数据

来自分类Dev

Java不保存所有数据

来自分类Dev

从 Firebase 获取所有数据

来自分类Dev

在Firebase数据库中添加新数据后如何获取所有数据

来自分类Dev

如何等到数据被获取并使用redux更新状态

来自分类Dev

如何从NetworkStream获取所有数据

来自分类Dev

如何保存resultSet并在TableView中显示所有数据

来自分类Dev

如何将所有数据并排保存在固定高度的 td 中

来自分类Dev

如何创建将所有数据保存到 JS 变量的 HTML <input> 提交按钮?

来自分类Dev

如何等到元素出现?

来自分类Dev

如何等到服务绑定?

来自分类Dev

如何等到 ssh 可用?

来自分类Dev

Django模型未保存表单中的所有数据

来自分类Dev

保存MVC4 html网格的所有数据

来自分类Dev

将所有数据保存到变量tcl

来自分类Dev

Set <String>是否不保存所有数据?

来自分类Dev

Foreach中的循环不保存所有数据

来自分类Dev

Firebase在应用启动时检索所有数据

来自分类Dev

为什么Firebase总是下载所有数据?

来自分类Dev

在Uid Firebase Android下检索所有数据

来自分类Dev

从 Firebase 中的 MainActivity 上传 RecyclerView 的所有数据

Related 相关文章

热门标签

归档