【问题标题】:Android - Issue on removing node from Firebase databaseAndroid - 从 Firebase 数据库中删除节点的问题
【发布时间】:2017-07-06 19:21:40
【问题描述】:

从 addChildEventListener 调用以下函数,以便在需要时从我的 Firebase 数据库中删除特定节点。 这里的问题是该函数启动了“删除的项目”。 toast,表示任务已成功执行,但该节点在数据库中仍然存在。

谁能告诉我怎么回事?

private void showData(DataSnapshot ds) {
    String keyValue = null;

    if(ds.hasChildren()) {
        keyValue = ds.getKey();

        Toast.makeText(getActivity().getApplicationContext(), "Removing item...", Toast.LENGTH_SHORT).show();
        ds.getRef().child(keyValue).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Toast.makeText(getActivity().getApplicationContext(), "Item removed.", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity().getApplicationContext(), "Something bad happened while removing item.", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

编辑 如果有帮助,我的查询如下:

orderItemsByTime = db.getInstance().getReference().child("items").orderByChild("time");

【问题讨论】:

  • 当你addOnCompleteListener时你有没有试过删除.getRef()?
  • 做到了。不幸的是,没有奏效。

标签: javascript android firebase firebase-realtime-database


【解决方案1】:

一个可能的解释是ds.getRef().child(keyValue) 没有指向您想要的位置。在不存在的位置执行remove() 时,这不是错误。 task.isSuccessful() 返回真。

添加一些调试日志(或烘烤)以显示ds.getRef().child(keyValue) 的路径:

Toast.makeText(getActivity().getApplicationContext(), "Removing item at " +
        ds.getRef().child(keyValue), Toast.LENGTH_SHORT).show();

或

Log.d(TAG, "Removing item at " + ds.getRef().child(keyValue));

【讨论】:

  • 我已经添加了您在此处发布此问题后建议的祝酒词。它显示了我要删除的特定路径。还有其他建议吗?
  • @LavitzBr:你确定路径正确吗?钥匙不会出现两次吗?那是你要的吗?例子:如果快照的路径是/test/post,key是post,remove的路径是/test/post/post。
  • 如果有帮助,我使用的查询是 orderItemsByTime = db.getInstance().getReference().child("items").orderByChild("time")。 toast 显示了我要删除的项目的数据库键的路径;与我在 Firebase 控制台上浏览数据库时看到的路径相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 2021-05-15
  • 2018-04-12
  • 1970-01-01
  • 2019-12-11
  • 1970-01-01
相关资源
最近更新 更多