我正在尝试使用where条件从Firebase实时数据库中获取数据.我想得到所有的数据基于一个特定的关键字。请在下面介绍我的JSON数据。

我想获取一个公司等于Balaji种子的数据。我想打印发音,proid。
我试过下面的代码。
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseReference = database.getReference();
Query query = mDatabaseReference.child("Products").orderByChild("company").equalTo("Balaji Seeds");
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildKey) {
Map<String, Object> newPost = (Map<String, Object>) dataSnapshot.getValue();
Toast.makeText(CompanyCategoryList.this, "ProName: "+newPost.get("proname"),Toast.LENGTH_LONG).show();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});我希望你能理解我的关心。提前谢谢。
发布于 2019-04-11 14:06:27
Firebase实时数据库查询对子节点列表进行操作。您的数据结构嵌套得很深,这使得查询变得更加困难。
在当前的数据模型中,您可以在/Products/Vegetable_Seeds/Chili上运行一个查询,然后获取company等于Balaji Seeds的子节点。但是,数据模型不允许在所有Products中查询该节点。
如果要允许此查询,则必须将当前模型更改为平面列表,或者添加一个额外的数据结构,以保留公司产品查找所需的数据。
另见:
https://stackoverflow.com/questions/55634290
复制相似问题