Как получить данные на основе значения из базы данных Firebase - PullRequest
2 голосов
/ 15 июня 2019

Я пытаюсь получить данные, основанные на «Платежах» в дочернем «Государстве», в моих структурированных данных Моя структурированная база данных

Я использовал это

salesRef = FirebaseDatabase.getInstance().getReference()
                .child("Orders")
                .orderByKey().startAt("Payments").endAt("Payments"+"\uf8ff");

но я ничего не получил назад. Что случилось?Что я должен использовать?

Ответы [ 2 ]

5 голосов
/ 15 июня 2019

Вы делаете заказ по ключу (089630116543 и т. Д.), А затем говорите, что хотите получить ключи, начиная с "Платежей" и заканчивая "Платежами \ uf8ff". Таких ключей нет, поэтому вы не получаете никаких результатов.

Я сам не использовал базу данных Firebase Realtime (просто Firestore, из C #, который связан, но не совсем так). Я подозреваю , если вы измените orderByKey() на orderByChild("state"), что бы это исправить:

salesRef = FirebaseDatabase.getInstance().getReference()
    .child("Orders")
    .orderByChild("state").startAt("Payments").endAt("Payments\uf8ff");

Обратите внимание, что здесь не будет найдено значение, в котором State является "Конфигурация ожидающих платежей", поскольку это не start с Payments. Если вы действительно хотите запрос типа «содержит», это может быть сложнее (или неосуществимо, я не уверен).

4 голосов
/ 15 июня 2019

Вам необходимо сделать следующее:

salesRef = FirebaseDatabase.getInstance().getReference().child("Orders").orderByChild("state").equalTo("Waiting Payments Config");

orderByChild примет имя атрибута в качестве аргумента, а equalTo примет значение этого атрибута в качестве аргумента.

Проверьте документы:

https://firebase.google.com/docs/database/android/lists-of-data

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