Запрос Firestore в Firebase Android - PullRequest
0 голосов
/ 09 марта 2020

, где значения не работают, он не фильтрует результаты, как я могу это исправить

вот моя база данных enter image description here enter image description here

вот мой код

 CollectionReference collection = mDB.collection("full_order");
    Query query = collection.whereEqualTo("Bakeryid", "1");
    query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {

            if (task.isSuccessful()) {
                Log.d("Results", task.getResult().toString());
                Toasty.success(getContext(), "Succefuul ", Toasty.LENGTH_LONG).show();
                userOrder = task.getResult().toObjects(UserOrder.class);
                adapterTruckDrivers = new RecycleViewAdapterTruckDrivers(getContext(), userOrder);
                recyclerView.setAdapter(adapterTruckDrivers);

            } else {
                Log.d("Results", "Errrror");
                //   Log.d("Results",task.getResult().toString());
                Toasty.error(getContext(), "Error ", Toasty.LENGTH_LONG).show();
            }
        }
    });

и у меня есть вопрос: могу ли я использовать методы FirebaseDatabase, такие как child et c .., когда я использую Firestore?

Ответы [ 3 ]

1 голос
/ 10 марта 2020

Измените это:

 CollectionReference collection = mDB.collection("full_order");
    Query query = collection.whereEqualTo("Bakeryid", "1");

на это:

 CollectionReference collection = mDB.collection("full_order");
    Query query = collection.whereEqualTo("bakeryID", "1");

Атрибут внутри whereEqualTo должен совпадать с атрибутом в базе данных

1 голос
/ 13 марта 2020

Чтобы решить эту проблему, измените следующую строку кода:

Query query = collection.whereEqualTo("Bakeryid", "1");

на

Query query = collection.whereEqualTo("order.BakeryID", 1);

В вашем коде три проблемы.

  • Имя свойства BakeryID и не Bakeryid. См. Строчные буквы id?
  • Это свойство вложено в карту order. Вы должны указать это в своем запросе.
  • Вы передаете whereEqualTo() one как String, а не как Number. В вашей базе данных значение этого свойства равно , а не a String. Видите, он не содержит кавычек?
1 голос
/ 10 марта 2020

Я не знаком с пожарным магазином, но вам нужно запросить документ, прежде чем ссылаться на следующую коллекцию, как это

String id  = "Tyc...."
CollectionReference collection = mDB.collection("full_order");
Query query =collection.document(id).whereEqualT..

Чтобы понять и узнать больше, обратитесь к этой ссылке

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