使用 Provider 时长度为空

length was null using Provider

应用运行顺畅。但是错误显示在控制台上。

The getter 'length' was called on null. Receiver: null Tried calling: length User-created ancestor of the error-causing widget was:
StreamProvider> file:///Users/Documents/flutter_job_manager/lib/components/router.dart:23:24

我将 Firebase 云存储与提供商一起使用

这里出现错误:(在我的 generateRoute 上)

  case AddCategory.route:
    return MaterialPageRoute(
      builder: (_) => StreamProvider<List<CategoryModel>>.value(
        value: DatabaseService().streamCategories(),
          child:  AddCategory()
      )
    );

只想知道: streamCategories 在数据库服务()

  Stream<List<CategoryModel>> streamCategories() {
    var ref = _db.collection('categories');

    return ref.snapshots().map((list) =>
        list.documents.map((doc) => CategoryModel.fromFirestore(doc)).toList());
  }

AddCategory 在 StatelessWidget

      StreamProvider<List<CategoryModel>>.value(
          value: db.streamCategories(),
          child:ListView.builder(
                itemCount: category.length,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                      title: Text(
                        category[index].categoryName,
                        ),
                  );
                }),
          ))

我添加了initialData。现在控制台上没有错误..

  return MaterialPageRoute(
      builder: (_) => StreamProvider<List<CategoryModel>>.value(
        initialData: [CategoryModel(categoryName: "no current categories")],
        value: DatabaseService().streamCategories(),
          child:  AddCategory()
      )
    );