Запрос FireStore не возвращает документы в мобильном приложении Flutter / Dart, но работает в javascript - PullRequest
0 голосов
/ 29 апреля 2020

Очень странное поведение, которое я испытываю с firestore.

Ниже код дротика не возвращает значение

await Firestore.instance.collection('users')
          .where("phoneNumber", isEqualTo: phoneNumber)
          .getDocuments();

Код javascript из Интернета возвращает значение

db.collection('users').where('phoneNumber', '==', 'xxxxxxxxxx').get().then((result) => {
       console.log(  result.docs.length )
}).catch((err) => {
console.log(err)
});

Но я ясно вижу, что номер телефона действительно существует в собрании. Я просто не знаю, происходит ли это из-за ожидающих записей или кэша. Где я могу отключить его, если это так?

изменить код для phNumber

Future<User> getPhoneUser(String phoneNumber) async {
    if (phoneNumber == 'xxxxxxxxxx') {
      print('yes the phone number is same');
    }
    try {
      QuerySnapshot qsnap = await usersRef
          .where("phoneNumber", isEqualTo: phoneNumber)
          .getDocuments();

      int length = qsnap.documents.length;

      if (length > 0) {
        DocumentSnapshot doc = qsnap.documents[0];
        doc.data['id'] = doc.documentID;
        doc.data['createdAt'] = doc.data['createdAt'].toDate().toString();
        doc.data['updatedAt'] = doc.data['updatedAt'].toDate().toString();
        User user = User.fromJson(doc.data);
        return user;
      } else {
        return null;
      }
    } catch (error) {
      return null;
    }
  }

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы запускаете приложение флаттера на симуляторе, иногда симуляторы go по какой-то причине отключаются, и вы больше не можете получать данные из сети.

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

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