Стримбордер Flutter Firestore с будущим - PullRequest
1 голос
/ 30 мая 2020

У меня простой вопрос. Ссылка на мою коллекцию firestore - это Dynami c. В этом фрагменте кода getDocumentReference () дает мне ссылку на документ после проверки электронной почты пользователя. Я использую ссылку на этот документ для получения своих снимков.

Future<Stream<QuerySnapshot>> getHabits() async {
    DocumentReference document = await getDocumentReference();
    var snapshots =  document.collection('habits').snapshots();
    return snapshots;
}

Как видите, я хочу использовать этот Future<Stream<QuerySnapshot>> для построителя потоков. Как я могу это сделать? Я пробовал что-то подобное. Но он не принимает будущее в качестве входных данных для потока

return StreamBuilder(
   stream: getHabits(),
);

1 Ответ

1 голос
/ 30 мая 2020

Вы можете обернуть его в FutureBuilder :

return FutureBuilder<Stream<QuerySnapshot>>(
   future: getHabits(),
   builder: (context, snapshot) {
      if (snapshot.hasData) {
          return StreamBuilder(stream: snapshot.data); // Success
      } else if (snapshot.hasError) {
          return Text('${snapshot.error}'); // Error
      } else {
          return CircularProgressIndicator(); // Loading
      }
   },

);
...