Получите единый документ из запроса Firebase Firestore с помощью Flutter - PullRequest
0 голосов
/ 21 июня 2020

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

Я пытаюсь получить отдельный документ из запроса firebase. Когда я говорю об одном документе, я имею в виду , а не поток .

Мой подход до сих пор:

MyClass getDocument(String myQueryString) {
    return Firestore.instance.collection('myCollection').where("someField", isEqualTo: myQueryString) //This will almost certainly return only one document
        .snapshots().listen(
            (querySnapshot) => _myClassFromSnapshot(querySnapshot.documents[0])
    );
  }

Однако я получаю сообщение об ошибке A value of type 'StreamSubscription<QuerySnapshot>' can't be returned from method 'getDocument' because it has a return type of 'MyClass'.

Спасибо!

1 Ответ

2 голосов
/ 22 июня 2020

Спасибо за ваши ответы,

Наконец-то я заставил его работать, сделав следующее:

Future<MyClass> getDocument(String myQueryString) {
    return Firestore.instance.collection('myCollection')
        .where("someField", isEqualTo: myQueryString)
        .limit(1)
        .getDocuments()
        .then((value) {
            if(value.documents.length > 0){
              return _myClassFromSnapshot(value.documents[0]);
            } else {
              return null;
            }
          },
        );
  }
...