Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase:子提取值的子级_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java Firebase:子提取值的子级

Java Firebase:子提取值的子级,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,如何提取数据中包含的所有“名称”值 我尝试提取单个名称,但不起作用: DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("ALL"); Query query = myRef.orderByChild("name").equalTo("pluto"); 两个问题: 您共享的代码只声明了一个查询。它还没有从Firebase读取任何信息 您试图在子属性中排序/筛选,但未指定该属性的完整路径 第二个问题最容易解

如何提取数据中包含的所有“名称”值

我尝试提取单个名称,但不起作用:

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("ALL");
Query query = myRef.orderByChild("name").equalTo("pluto");
两个问题:

  • 您共享的代码只声明了一个查询。它还没有从Firebase读取任何信息
  • 您试图在子属性中排序/筛选,但未指定该属性的完整路径
  • 第二个问题最容易解决:

    DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("ALL");
    Query query = myRef.orderByChild("DATA/name").equalTo("pluto");
    
    然后,您可以通过以下方式读取结果:

    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
                Log.i("Firebase", snapshot.getKey());
                Log.i("Firebase", snapshot.child("name").getValue(String.class));
            }
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {
            throw databaseError.toException();
        }
    }
    
    谢谢

    我对它进行了编辑,以便日志正常工作 Log.i(“Firebase”,snapshot.child(“DATA/name”).getValue(String.class))


    如果我想打印所有的名字,我应该怎么做?

    嘿,托比。你可能已经注意到你的问题得到了一些反对票。我向上投票以消除其中的一些问题,但一般来说,您可以通过以下方式防止大量向下投票:1)使用Stack Overflow的格式化工具来确保您的代码正确格式化并高亮显示;2)将文本内容发布为文本,而不是图像。例如,屏幕截图可以/应该是实际的JSON。您可以通过单击溢出菜单中的“导出JSON”链接来实现这一点(⠇) 在你的座位上。