在updateChildren中断功能后直接清除HashMap

时间:2016-12-17 00:36:56

标签: android firebase firebase-realtime-database

通话:

HashMap<String, Object> updates = new HashMap<String, Object>();
updates.put(myKey, null);
mDatabase.updateChildren(updates);
updates.clear();

不会从myKey位置执行预期值删除。它可以通过克隆updates HashMap,调用:

轻松解决
mDatabase.updateChildren(new HashMap<String, Object>(updates));

这是一个错误还是预期的行为?有文件吗?

1 个答案:

答案 0 :(得分:1)

更新以异步方式发送到Firebase数据库。在更新完成之前,您不应修改传递给Firebase的地图。

使用updateChildren() method that takes a completion listener)很容易做到:

mDatabase.updateChildren(updates, new DatabaseReference.CompletionListener() {
    @Override
    public void onComplete(DatabaseError error, DatabaseReference ref) {
        if (error == null) {
            updates.clear();
        }
    }
});