我的代码以这种方式工作:当我在帖子上时,我按下"确定"在AlertDialog.Builder上,然后我去:
private void borrar_post(){
Intent intent = new Intent(PostDetailActivity.this, MainActivity.class);
intent.putExtra("EXTRA_BORRAR_POST", mPostKey);
startActivity(intent);
}
我回到主要活动,看看是否有我需要删除的内容:
String borrar = getIntent().getStringExtra("EXTRA_BORRAR_POST");
if (borrar != null) {
DatabaseReference mipost = FirebaseDatabase.getInstance().getReference();
mipost.child("user-posts").child(getUid()).child(borrar).removeValue();
mipost.child("posts").child(borrar).removeValue();
mipost.child("post-comments").child(borrar).removeValue();
}
我从我的firebase实时数据库中的3个地方删除了我的帖子。树是:
我可能没有任何关于"后评论",所以我知道我可能有问题(也许我应该检查一下是否有什么东西那之前)但即使我评论那条线,我仍然遇到同样的问题:
有时候一切都会被删除,有时候什么都没有,大多数时候只有"用户帖子"孩子被删除了。
我知道我的问题与此类似,但我似乎无法找到错误,有什么帮助吗?
答案 0 :(得分:0)
您是否有安全规则限制写访问权限作为某个位置当前值的函数?这可能解释了为什么有些移除成功而其他移除失败。
要了解为什么有些FIND - ".*?(blue.?green)"
REPLACE - "$1",
来电失败,请添加CompletionListener。您可以将调试侦听器定义为活动中的字段,如下所示:
removeValue()
然后将其添加到您对private DatabaseReference.CompletionListener mRemoveListener =
new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError error, DatabaseReference ref) {
if (error == null) {
Log.d(TAG, "Removed: " + ref);
// or you can use:
System.out.println("Removed: " + ref);
} else {
Log.e(TAG, "Remove of " + ref + " failed: " + error.getMessage());
}
}
};
的每次调用中:
removeValue()