Плагин Flutter Firestore не может получать данные с комбинацией where и isEqualTo - PullRequest
0 голосов
/ 08 мая 2018

У меня есть коллекция по имени "поездки" в Firestore. Формат данных примерно такой:

enter image description here

Я пытаюсь получить доступ к документам этой Коллекции, используя код ниже.

Первый путь

try {
  Firestore.instance
      .collection("trips")
      .where("createdByName", isEqualTo: "Suresh")
      .snapshots
      .listen((data) => print('Firestore response1: ${data.documents}'));
} catch (e){
  print('Caught Firestore exception1');
  print(e);
}

Второй способ

try {
  Firestore.instance.collection("trips").where("createdByName", isEqualTo: "Suresh").getDocuments().then((data) {
    print('Firestore response2: , ${data.documents}');
  });
} catch (e){
  print('Caught Firestore exception2');
  print(e);
}

Но ни один из вышеперечисленных способов не работает. Не знаю, что я делаю не так.


Одна вещь, которую я заметил, когда удаляю часть where("createdByName", isEqualTo: "Suresh") из запроса, работает нормально. Но в тот момент, когда я включаю этот запрос детали, возвращается пустой результат.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Хорошо, после двух дней разрыва моего мозга из-за этой глупости ... это ответ на вопрос ... .where('trip.createdByName', isEqualTo: "Suresh")

И полные запросы такие ...

Первый путь

Firestore.instance.collection('trips')
  .where('trip.createdByName', isEqualTo: "Suresh")
  .snapshots.listen(
      (data){
        data.documents.forEach((doc) => print( 'Firestore response1 : ${doc.data.toString()}' ));
      }
  );

Второй способ

Firestore.instance.collection("trips")
  .where("trip.createdByName", isEqualTo: "Suresh")
  .getDocuments().then((string) {
    string.documents.forEach((doc) => print("Firestore response2: ${doc.data.toString()}" ));
  });

Надеюсь, это поможет. :)

0 голосов
/ 09 мая 2018

Я не уверен, что снимок экрана точный, но похоже, что у вас также есть узел trip. Это поместило бы иерархию как trips.trip.createdByName, нет? Если это так, вполне вероятно, что предложение where неверно.

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