我正在尝试使用where
条件从Firebase实时数据库中获取数据。
我想获取基于特定关键字的所有数据。请在下面输入我的JSON数据。
我想获取公司等于Balaji Seeds的数据。而且我想打印姓氏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) {
}
});
希望您能理解我的担心。预先感谢。
答案 0 :(得分:0)
Firebase实时数据库查询对子节点列表进行操作。您的数据结构是深层嵌套的,这使得查询变得更加困难。
在当前数据模型中,您可以在/Products/Vegetable_Seeds/Chili
上运行查询,然后获取company
等于Balaji Seeds
的子节点。但是数据模型不允许在该节点的所有Products
中进行查询。
如果要允许此查询,则必须将当前模型更改为平面列表,或者添加其他数据结构以保留查询公司产品所需的数据。
另请参阅: