Получить базу данных Fire в реальном времени, используя условие where - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь получить данные из базы данных Firebase в реальном времени, используя условие where.Я хочу получить все данные на основе конкретного ключевого слова.пожалуйста, мои данные JSON ниже.

enter image description here

Я хочу получить данные, если компания равна 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) {

            }


        });

Я надеюсь, вы понимаете мою озабоченность.Заранее спасибо.

1 Ответ

0 голосов
/ 11 апреля 2019

Запросы базы данных Firebase Realtime работают со списком дочерних узлов.Ваша структура данных глубоко вложена, что усложняет запрос.

В вашей текущей модели данных вы можете выполнить запрос на /Products/Vegetable_Seeds/Chili, а затем получить узлы дочерних узлов, в которых значение company равнодо Balaji Seeds.Но модель данных не позволяет выполнять запросы по всем Products для этого узла.

Если вы хотите разрешить этот запрос, вам придется либо изменить текущую модель на плоский список, либо добавитьдополнительная структура данных, в которой хранятся данные, необходимые для поиска продуктов для компании.

См. также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...