android - orderByChild() 在 Firebase 数据库中不起作用

标签 android firebase firebase-realtime-database

这是 firebase 数据结构。

Firebase datastructure

这里我想选择所有值为“stop”的节点并删除它们。我写了这段代码,但这不起作用。

final Map<String, Object> map = new HashMap<String, Object>();
Query numberQuery = reference.child("numbers").orderByChild("stop");
numberQuery.addValueEventListener(new ValueEventListener() {
   @Override
   public void onDataChange(DataSnapshot dataSnapshot) {
      if (dataSnapshot.exists()){
       for (DataSnapshot eachDataSnapShot : dataSnapshot.getChildren()) {
              map.put("/numbers/"+eachDataSnapShot.getKey(), null);
           }
       }
     }
   @Override
   public void onCancelled(DatabaseError databaseError) {

     }
    });

    reference.updateChildren(map);

实际上,我没有得到如何在 firebase 文档中使用查询。如果有任何其他方法(不使用查询)告诉我。

最佳答案

我找到了这个问题的答案,我在使用 orderByChild() 时遇到了一个问题,但我不得不在那里使用 orderByValue()。所以我只是将 orderByChild("stop") 更改为 orderByValue().equalTo("stop") 并且它起作用了。

Query numberQuery = reference.child("numbers").orderByValue().equalTo("stop");

numberQuery.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()){
            for (DataSnapshot eachDataSnapShot : dataSnapshot.getChildren()) {
               map.put("/numbers/"+eachDataSnapShot.getKey(), null);
            }
            reference.updateChildren(map);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

关于android - orderByChild() 在 Firebase 数据库中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931813/

相关文章:

angular - Firebase createUserWithEmailAndPassword() 返回 HTTP POST 错误失败以及错误对象

javascript - 使用 Firebase Cloud Functions 发送通知时循环

java - 如何在android中绘制从Firebase数据库检索的数据

android - 如何在android中为不同的布局使用不同的tabhosts

android - 如何在 Android 中实现 RESTFUL 服务?

android - 找不到与给定名称匹配的资源?

android - 如何为安卓应用找到 "Keytool"

android - 使用未签名的 APK 测试 Google Play 服务

python - 检查 Firebase 应用程序是否已在 python 中初始化

ios - Swift 如何仅当我的数据库中有值时才显示 tableview 单元格