Я пытаюсь получить данные из базы данных Firebase в реальном времени, используя условие where
. Я хочу получить все данные на основе конкретного ключевого слова. пожалуйста, мои данные JSON ниже.
Я хочу получить данные, где компания равна Balaji Seeds. И я хочу напечатать проэйм, проид.
Я попробовал ниже код.
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) {
}
});
Я надеюсь, вы понимаете мою озабоченность Заранее спасибо.
Запросы базы данных Firebase Realtime работают со списком дочерних узлов. Ваша структура данных глубоко вложена, что усложняет запрос.
В вашей текущей модели данных вы можете выполнить запрос в /Products/Vegetable_Seeds/Chili
и затем получить дочерние узлы в узлах, где company
равна Balaji Seeds
. Но модель данных не позволяет запрашивать все Products
для этого узла.
Если вы хотите разрешить этот запрос, вам придется либо изменить текущую модель на плоский список, либо добавить дополнительную структуру данных, в которой хранятся данные, необходимые для поиска продуктов для компании.
Также см: