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

使用android删除firebase中的元素[重复]

司宏伯
2023-03-14

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

    |---employees
         |----KJSXd4ScEmJ6N4UFc5k 
             |---employeeName:"semah"
             |---employeeAge:"24"
         |----KJW3HRh5kxm_FgU9nNV
             |---employeeName:"Alex"
             |---employeeAge:"35"

现在我想删除节点KJSXd4ScEmJ6N4UFc5k。但我只知道“雇员名”:塞马。我尝试删除节点时使用了:

mFirebaseDatabaseReference
.child("employees")
.child("employeeName")
.child("semah")
.getParent()
.setValue(null);

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

所以我的问题是,我如何删除节点:"-KJSXd4ScEmJ6N4UFc5k"只知道:"Semah"或如何通过生成的id删除元素"-KJSXd4ScEmJ6N4UFc5k"。

提前谢谢。

共有2个答案

靳睿
2023-03-14

在您的例子中,您可以构建一个查询来检索要删除的项目。
类似于:

Firebase refEmployees = new Firebase("..../employees");
Query queryRef = refEmployees.orderByChild("name").equalTo("semah");


queryRef..addListenerForSingleValueEvent(
            new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
             String key=snapshot.getKey(); 
             //Remove the item
        }


       @Override
         public void onCancelled(DatabaseError databaseError) {

         }
});
糜淇
2023-03-14

由于您没有对键KJSXd4ScEmJ6N4UFc5k的引用,您需要检索该值,并尝试用检索到的值的ref删除它。像这样的东西

 database.getReference("employees").orderByChild("employeeName").equalTo("semah").addListenerForSingleValueEvent(
                new ValueEventListener() {
                    @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot child: dataSnapshot.getChildren()) {
                child.getRef().setValue(null);
            }
        }


       @Override
         public void onCancelled(DatabaseError databaseError) {
              Log.w("TodoApp", "getUser:onCancelled", databaseError.toException());
         }
});
 类似资料:
  • 统计一个一维数组中的各个元素的个数,然后删除多出来的重复元素,并输出结果。 例如:[1,2,2,2,3,3,3,3,3]—>[1,2,3] 解决思路 将重复元素的列表中的重复元素进行统计,并将统计结果放在dictionary中,key为元素,value为该元素的个数 更新此步方法:上述步骤的功能,能够通过另外一个方法实现,即collections.Counter() 然后通过for获取key,得到

  • 问题内容: 我有一本字典存放在 现在,我不想包含重复的,我应该使用什么? 问题答案: 只需创建一个可以通过键获取唯一值的过滤器即可。这样的事情应该做(我根本没有测试过,所以我把这件事留给你,这只是给你一个主意): 注意:Array.indexOf()在IE8中不起作用 ,因此,如果支持IE8,则需要在indexOf()中存根,或者需要使用稍微不同的方法。 其他想法:如果已经在引用那些库,那么最好创

  • 问题内容: Python 3.2.5 x64 ElementTree 我有需要使用python格式化的数据。本质上,我具有包含元素和子元素的文件。我需要删除其中一些元素的子元素。我已经检查了先前的问题,但无法解决。到目前为止,我拥有的最好的功能只是删除了每个第二子元素。 样本数据: 我需要的输出看起来像: 我有一段时间没有写任何东西了,我的代码也没用。我可以解析文件,然后将其写入,但我无法正确处理

  • 我有一个特定的JSON节点,对应于import org.codehaus.jackson。JsonNode,而不是导入org.codehaus.jackson.map.JsonNode。 我想从上述数组的所有JSON节点中删除“familyName”和“middleName”。有没有办法做到这一点?

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 问题内容: Google Python类| 清单练习- 给定一个数字列表,返回一个列表,其中所有相邻的==元素都已简化为单个元素,因此[1、2、2、3]返回[1、2、3]。您可以创建一个新列表或修改传入的列表。 我使用新列表的解决方案是- 问题甚至暗示可以通过修改传入列表来完成。但是,python文档警告不要在使用for循环迭代列表时修改元素。 我想知道除了遍历列表之外还能做些什么呢?我不是在寻找