Метод '[]' был вызван на нуль.(Как получить данные из пожарного магазина?) - PullRequest
0 голосов
/ 30 июня 2019

У меня есть данные о пожарном депо. Я использовал JSON и сериализацию с шаблоном блока. Проект не запущен. Ошибка,

Необработанное исключение: NoSuchMethodError: Метод '[]' был вызван ноль. Получатель: null Пробный вызов:

мой файл DB.dart (для заданных данных)

class DB {
  final db = Firestore.instance;

  getPhotography() async {
     await db
    .collection('photography')
    .document('0yUc5QBGHNNq6WK9CyyF')
    .setData(jsonDecode(jsonEncode(Photography(
  [AllImages(["list"])],
  "image_url",
  "Shanika",
  "inage_url",
  "lovely couple",
  "Bhanuka"
))));
  }}
DB db = DB();

класс фотографии_блока

class PhotographyBloc extends BlocBase{

PhotographyBloc(){
  init();
}
Photography photography;

  final _firestoreController = StreamController<Photography>();
  Stream<Photography> get outFirestore => _firestoreController.stream;
  Sink<Photography> get inFirestore => _firestoreController.sink;


  @override
  void dispose() {
    _firestoreController.close();
  }

  void init() async{
  Photography data;
  await db.getPhotography().then((v) => data = v);
    inFirestore.add(data);
  }
}

Widget (StreamBuilder)

child: StreamBuilder<Photography>(
                stream: bloc.outFirestore,
                initialData: null,
                builder: (context, snapshot) {
                  print(snapshot.data); //output is null
                  Photography data = Photography.fromJson(jsonDecode(jsonEncode(snapshot.data))); //try to retrieving data, error is coming here

Фотография модели класса (я использовал build_runner)

import 'package:json_annotation/json_annotation.dart';
part 'Model.g.dart';

    @JsonSerializable()
    class Photography{
       List<AllImages> all_images;
       String couplePhoto;
       String female;
       String image_url;
       String info;
       String male;

      Photography();

      factory Photography.fromJson(Map<String, dynamic> json) => _$PhotographyFromJson(json);
       Map<String,dynamic> toJson() => _$PhotographyToJson(this);
    }

    @JsonSerializable()
    class AllImages {
      final List<String> imageUrl;

      AllImages(this.imageUrl);

      factory AllImages.fromJson(Map<String, dynamic> json) => _$AllImagesFromJson(json);
      Map<String,dynamic> toJson() => _$AllImagesToJson(this);
    }
...