当前位置: 首页 > 知识库问答 >
问题:

如何删除Firebase数据库中的特定数据?

赫连棋
2023-03-14

我正在开发一个社交网络应用程序,用户可以关注其他用户,喜欢他们的帖子、评论。。。当某个用户跟踪某人时,它会在另一个用户帐户的通知片段中显示,通知他有一个新的跟踪者。问题是,当用户点击unfollow时,我无法删除通知。以下是我尝试过的:

 if ( holder.btn_follow.getText().toString().equals("follow"))
 {
addNotifications(user.getId());
}
 else{
 FirebaseDatabase.getInstance().getReference("Notifications").child(user.getId()).removeValue();
   }

下面是我添加通知的方式:

 private void addNotifications(String userid)
    {
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Notifications").child(userid);
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("userid", firebaseUser.getUid());
        hashMap.put("text"," started following you");
        hashMap.put("postid","");
        hashMap.put("ispost",false);
        reference.push().setValue(hashMap);
    }

我的代码的问题是,每当用户取消关注某人时,该用户的所有通知都会被删除,包括他的喜欢和评论。我想要的是删除“开始关注你”。以下是它在Firebase数据库中的外观。

共有1个答案

云宝
2023-03-14

使用Firebase查询指的是Firebase文档,它将是这样的

Query queryRef = mReference.child("Notifications").child(userId).orderByChild("text").equalTo("start following you");

queryRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot snapshot, String previousChild) {
      // snapshot.getRef().setValue(null);
      snapshot.getRef().remove();
    }
});
 类似资料:
  • 我正在尝试删除 Firebase 实时数据库中用户之间的消息。我能够成功删除消息,但我想添加一个条件,即用户无法删除他收到的消息,只能删除他发送的消息,目前用户能够删除他收到的消息以及他从firebase实时数据库中发送的消息。 我的代码 MessageActivity.java MessageAdapter.java 聊天.java

  • 我开始使用一个代码,使用Firebase实时数据库。我将它实现到我的解决方案中。连接和控制非常完美,所以我将其用于生产环境。 一段时间后,我在升级,我需要再次删除所有数据-但请稍候,控制台中最高根级别不再有删除按钮,并且一次只允许在一个选定项目中: 上次更新仅显示此消息,没有后续步骤: 只读 问:如何一次删除所有数据?

  • 我正在做一个聊天应用程序我想让用户能够删除聊天和消息从firebase数据库下面是我尝试使用一些代码删除消息适配器的代码,当我长时间点击消息,但当我登录到应用程序的消息回来。我使用firebase数据库

  • 我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?

  • 我最近删除了WooCommerce的插件产品Feed PRO,但它在我的数据库中留下了许多元键,在我导入/导出产品时让我感到困惑。 如何删除和清除数据库中以开头的所有条目?有没有一个SQL命令可以做到这一点?

  • 我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。