Мои данные из магазина не могут быть получены с помощью дротика - PullRequest
0 голосов
/ 30 января 2020

Я пользуюсь облачным пожарным магазином во флаттере, который я сделал:

  1. подключил приложение с помощью firebase
  2. поместил google-сервисы. json в приложение build.gradle
  3. добавить зависимость и плагин
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  MyApp();
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      title: 'کوردی پۆلی یەک',
      theme: ThemeData(
        primarySwatch: Colors.blueGrey,
      ),
      home: MainScreen(),
    );
  }
}
class MainScreen extends StatelessWidget{

  List<Widget> makeListWidget(AsyncSnapshot snapshot){
    return snapshot.data.documents.map<Widget>((document){
      return ListTile(
        title: Text(document["name"]),
      );
    }).toList();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("کوردی پۆلی یەک",style: TextStyle(color: Colors.white),),
        backgroundColor: Colors.deepOrange,
      ),
      body: Container(
        child: StreamBuilder(
          stream: Firestore.instance.collection('lesson').snapshots(),
          builder: (context,snapshot){
            switch(snapshot.connectionState){
              case ConnectionState.none:
                return Center(child: Text('No data'));
              case ConnectionState.waiting:
                return Center(
                    child:CircularProgressIndicator());
              default:
                return ListView(
                  children:makeListWidget(snapshot),
                );
            }
          },
        ),
      ),
    );
  }
}

Это просто загрузка, и когда я удаляю connectionState.waiting выдает ошибку:

NoSuchMethodError: Получатель «документы» был назван нулевым. Получатель: null Пробный вызов

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

изменить разрешение на чтение, запись: если true; разрешить читать, писать;

0 голосов
/ 30 января 2020

Измените правила безопасности пожарного депо на следующие:

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
...