Свойство «документы» не может быть безоговорочно доступно, потому что получатель может быть «нулевым» — Флаттер

#flutter #dart #snapshot

Вопрос:

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

код :

   body: Container(
    padding: EdgeInsets.all(10),
    height: MediaQuery.of(context).size.height,
    width: MediaQuery.of(context).size.width,
    child: StreamBuilder(
      stream: Firestore.instance
          .collection('tasks')
          .document(uid)
          .collection('mytasks')
          .snapshots(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return Center(
            child: CircularProgressIndicator(),
          );
        } else {
          final docs = snapshot.data.documents; //facing error

          
 

Я также попробовал final docs = snapshot.data?.документы;
это дает ошибку-документ-получатель не определен для типа «объект».

введите описание изображения здесь

Ответ №1:

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

final docs = snapshot.data!.docs;

Ответ №2:

просто добавьте «!» и укажите тип моментального снимка в параметрах конструктора:-

 builder: (context,AsyncSnapshot<QuerySnapshot> snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return Center(
            child: CircularProgressIndicator(),
          );
        } else {
          final docs = snapshot.data!.docs;
 

Комментарии:

1. я сделал это, но это показывает ошибку

2. документ-получатель не определен для типа «объект».

3. проверьте обновленный код