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

删除Firebase中具有给定id但未知节点id的节点

宋伟泽
2023-03-14

我有一个Firebase数据结构,如下所示:

|---groups
|       |---group1
|       |       |---membernames
|       |              |---xy_unknownid
|       |                  |---givenname: "userx"
|       |              |---tv_unknownid
|       |                  |---givenname: "usery"

现在,我想删除节点xy\u unknownid。但我只知道“givenname”:userx。

我尝试使用以下内容删除节点:

mFirebaseDatabaseReference
.child("groups")
.child("group1")
.child("membernames")
.child("$member")
.child("userx")
.getParent()
.setValue(null);

但这不起作用,因为“无效的Firebase数据库路径:$成员。Firebase数据库路径不能包含“.”、“\;”、“$”、“[”或“]””

所以我的问题是,如何删除节点:“xy\u unknownid”只知道:“userx”。

提前谢谢。

共有2个答案

夏烨霖
2023-03-14

您需要分两步完成:

>

mFirebaseDatabaseReference.child("groups").child("group1").child("membernames"). orderByChild("givenname").equalTo("user")

一旦您在回调中获得响应,您就可以使用密钥

dataSnapshot.getKey()

并使用该键使用setValue(null)Remote veValue()

伍心水
2023-03-14

试试这个代码,告诉我这是否有效,

mFirebaseDatabaseReference.child("groups").child("group1").child("membernames").addListenerForSingleValueEvent(new ValueEventListener() {
   @Override
   public void onDataChange(DataSnapshot snapshot) {
      for(DataSnapshot dataSnapshot1:snapshot.getChildren())
      {
         if(dataSnapshot1.child("givenname").getValue().toString().equals("userx"))
         {
             dataSnapshot1.getRef().setValue(null);
             break;
         } 
      }

   }
   @Override
   public void onCancelled(FirebaseError firebaseError) {
   }
});
 类似资料:
  • 一直在阅读文件和其他职位,但我无法删除一个节点。我试图通过一个值来选择节点。 然后在结果上调用 remove 方法 除了空错误值之外,什么都不会发生。我使用的是最新的firebase,大多数示例都是针对旧版本的,因此我不确定是否需要获取密钥,然后尝试删除该密钥作为参考? 这是第一次使用 firebase,所以我不确定我是否正确保存了数据。这是要保存的代码。 和屏幕截图

  • 我在Neo4jClient中的ID工作方式有问题。我想要我的。NET模型具有标识符属性,理想情况下,我希望只对该节点使用Neo4j自动增量id。 但是,无论我在模型类中使用何种情况(,,),它总是将其作为另一个字段添加到Neo4j中(在创建新节点时将其保持为0)。因此,当我在Neo4j浏览器中查看该节点时,它有一个

  • 我想通过单击cardView中的元素来访问这一点,我只能通过使用此行到达它之前的点

  • 我的项目是基于SpringBootNeo4J的。我正在尝试创建一个新的特权节点,但不想复制特权。 现在我有一个UserRole节点,它是holds

  • 我正在使用Firebase作为web应用程序。它是用纯Javascript编写的,不使用外部库。 我可以“推送”并使用“.on(”child_added“)”检索数据,但是“.remove()”不能按照它所说的方式工作。根据 API, “Firebase.remove()-删除此Firebase位置的数据。子位置的任何数据也将被删除。删除的效果将立即可见。” 然而,移除不是立即发生的;只有在整个脚

  • 问题内容: 我正在使用reactFire,Firebase和reactJS构建一个简单的待办事项应用程序。我遇到的问题是当我尝试批量删除列表中已完成的条目时。 该循环过早结束,即在删除所有完成的条目之前,因为调用了render函数。 问题答案: 您可以使用多位置更新一次性删除所有已完成的项目: