Java Android如何让firebase数据库中的加载数据与orderByChild()结合使用&;startAt()&;limitToFirst()?

Java Android如何让firebase数据库中的加载数据与orderByChild()结合使用&;startAt()&;limitToFirst()?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想对Firebase RealTimeDatabase中的数据进行排序。我试图做的是,当我首先加载数据时,它将从我放入的子值开始,如“7”,然后它将根据子“NUMBER”值按升序对数据库进行排序,并限制第一(2)个数据。但是日志总是显示dataSnapshot不存在 这是我的密码 加载数据的代码 } 我期望从日志中看到的是“7”和“8”,但它总是显示dataSnapshot不存在。有人能告诉我我在这里做错了什么吗?我已经试着寻找其他一些类似的问题,但找不到任何解决办法 试试这个,我通过短接来获

我想对Firebase RealTimeDatabase中的数据进行排序。我试图做的是,当我首先加载数据时,它将从我放入的子值开始,如“7”,然后它将根据子“NUMBER”值按升序对数据库进行排序,并限制第一(2)个数据。但是日志总是显示dataSnapshot不存在

这是我的密码

加载数据的代码

}


我期望从日志中看到的是“7”和“8”,但它总是显示dataSnapshot不存在。有人能告诉我我在这里做错了什么吗?我已经试着寻找其他一些类似的问题,但找不到任何解决办法

试试这个,我通过短接来获取数据:

mChatReference = FirebaseDatabase.getInstance().getReference(VTEST)
                .child("user id");
        Query query = mChatReference.orderByChild("NUMBER");
        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                yourList.add(snapshot.child("NUMBER").getValue());
            }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
您通过以下方式进行筛选:

databaseReference.child("VTEST").orderByChild("NUMBER").startAt("7")
您正在存储:

"NUMBER" : 7
如果你仔细看,你会发现一个是字符串,另一个是整数。在Firebase实时数据库中,不同类型的值永远不相等

要解决此问题,请按数值进行筛选:

databaseReference.child("VTEST").orderByChild("NUMBER").startAt(7)

您能用实际的JSON替换数据结构吗(作为文本,没有屏幕截图)?您可以通过单击溢出菜单中的“导出JSON”链接来实现这一点(⠇) 我已经用JSON更新了我的数据结构already@GAMETTXD你为什么说你没有得到数据?你如何/在哪里验证它?我正在更新我的答案@FrankvanPuffelen你救了我的命,它很有魅力。非常感谢。
"NUMBER" : 7
databaseReference.child("VTEST").orderByChild("NUMBER").startAt(7)