StreamBuild: поток, вызывающий метод, который возвращает Firestore Stream, не получает данные до обновления - PullRequest
0 голосов
/ 20 февраля 2020

Я надеюсь, что кто-то может объяснить, почему существует другое поведение при явном вызове Firestore.instance.collection ('data'). Snapshots () против вызова метода, содержащего Firestore .instance.collection ('data'). snapshots () и возвращает поток.

Вызов метода, который содержит Firestore.instance.collection ('data'). Snapshots () захватывает моментальный снимок данных только после внесения изменений в данные пожарного хранилища.

class GlobalAppModel extends Model{
......//other global data elements

  Stream getDataStreamSnapshots(){
    Firestore.instance.collection('data').snapshots();
  }
}
class DataDetailWidget2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    dataStream = AppModel.of(context);
    ....
    body: Container(
        child: StreamBuilder(
          stream: Firestore.instance.collection('data').snapshots(), //This works great.
          //stream: dataStream.getDataStreamSnapshots(), //This does not grab a snapshot until firestore is updated.
          builder: (context, snapshot) { 
            .....
          }

    ....
  }

}

1 Ответ

2 голосов
/ 20 февраля 2020

В вашем методе getDataStreamSnapshots просто отсутствует ключевое слово return.

class GlobalAppModel extends Model{
......//other global data elements

  Stream getDataStreamSnapshots(){
    return Firestore.instance.collection('data').snapshots(); // return added
  }
}
...