Список данных, извлеченных из магазина, всегда равен нулю. Что я здесь не так делаю? - PullRequest
0 голосов
/ 04 апреля 2020

Моя модель:


class doCusine{

  final String cusineid;
  final String cusinename;
  final String status;

  doCusine({this.cusineid,this.cusinename,this.status});

  doCusine.fromJson(Map<String,dynamic> parsedJson)
    : cusineid = parsedJson['cusineid'],
      cusinename = parsedJson['cusinename'],
        status = parsedJson['status'];
}

Мой виджет:


class UserDetailHeader extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final  List<doCusine> cusines = Provider.of<List<doCusine>>(context);
    print('Cusines : $cusines');  //cusines is null
    return ListTile()
    );
  }
}

Поток базы данных:

  Stream<List<doCusine>> getCuisines() {

      return _db
          .collection('Cuisines')
          .orderBy('cuisineid',descending: true)
          .snapshots()
          .map((snap) => snap.documents
          .map((doc) => doCusine.fromJson(doc.data))
          .toList());
  }

Основной виджет:

 return MultiProvider(
        providers: [
          StreamProvider<doUserProfile>.value(
            value: DatabaseService().getCurrentUserFromSnapshot(uid),
          ),
          StreamProvider(
            create: (BuildContext context) => DatabaseService().getCuisines(),),
        ],
        child: SafeArea()}}

Итак, проблема здесь в том, что мой объект cusine, полученный с помощью provider.of, всегда равен Null. У меня есть данные в моей базе данных firestore, я не знаю, есть ли какая-то проблема с синхронизацией данных из firestore в мое приложение или какая-то проблема с моей реализацией.

final  List<doCusine> cusines = Provider.of<List<doCusine>>(context);

Что я делаю здесь неправильно?

...