'firebase / main.dart': ошибочное утверждение - PullRequest
0 голосов
/ 31 декабря 2018

Я сделал простой проект с именами детей, используя firebase на флаттере, после успешного прохождения учебника приложение выдает следующую ошибку: "package: firebase_demo / main.dart ': Неудачное утверждение: строка 86 поз 16:' map ['voice]! = null': не соответствует действительности. "

Помощь для того же.

МОЙ КОД -:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';

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

final dummySnapshot = [
  {"name": "Filip", "votes": 15},
  {"name": "Abraham", "votes": 14},
  {"name": "Richard", "votes": 11},
  {"name": "Ike", "votes": 10},
  {"name": "Justin", "votes": 1},
];

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Baby Names',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() {
    return _MyHomePageState();
  }
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Baby Name Votes')),
      body: _buildBody(context),
    );
  }

  Widget _buildBody(BuildContext context) {
    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection('baby').snapshots(),
      builder: (context, snapshot) {
        if (!snapshot.hasData) return LinearProgressIndicator();

        return _buildList(context, snapshot.data.documents);
      },
    );
  }

  Widget _buildList(BuildContext context, List<DocumentSnapshot> snapshot)  {
    return ListView(
      padding: const EdgeInsets.only(top: 20.0),
      children: snapshot.map((data) => _buildListItem(context, data)).toList(),
    );
  }

  Widget _buildListItem(BuildContext context, DocumentSnapshot data) {
    final record = Record.fromSnapshot(data);

    return Padding(
      key: ValueKey(record.name),
      padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
      child: Container(
        decoration: BoxDecoration(
          border: Border.all(color: Colors.grey),
          borderRadius: BorderRadius.circular(5.0),
        ),
        child: ListTile(
          title: Text(record.name),
          trailing: Text(record.votes.toString()),
          onTap: () => print(record),
        ),
      ),
    );
  }
}

class Record {
  final String name;
  final int votes;
  final DocumentReference reference;

  Record.fromMap(Map<String, dynamic> map, {this.reference})
      : assert(map['name'] != null),
        assert(map['votes'] != null),
        name = map['name'],
        votes = map['votes'];

  Record.fromSnapshot(DocumentSnapshot snapshot)
      : this.fromMap(snapshot.data, reference: snapshot.reference);

  @override
  String toString() => "Record<$name:$votes>";
}

Вывод:

Выполнение горячего перезапуска ... Синхронизация файлов на устройстве Redmi Note 4 ... Перезапуск приложения за 1,994 мс.I / flutter (2257): ══╡ ИСКЛЮЧЕНИЕ, ВЫДЕРЖАННОЕ БИБЛИОТЕКОЙ ВИДЖЕТОВ ╞═══════════════════════════════════════════════════════════ I / flutter (2257): было выброшено следующее утверждение при построении StreamBuilder (грязный, состояние: I / flutter (2257): _StreamBuilderBaseState> # 94c3a): I / flutter (2257): 'package: firebase_demo / main.dart': ошибочное утверждение: строка 86, позиция 16: 'map [' voice ']! = Null': не I / flutter (2257): правда.I / flutter (2257): I / flutter (2257): Либо утверждение указывает на ошибку в самой структуре, либо мы должны предоставить существенно I / flutter (2257): больше информации в этом сообщении об ошибке, чтобы помочь вам определить и исправитьосновной причиной.I / флаттер (2257): в любом случае сообщите об этом утверждении, отправив сообщение об ошибке на GitHub: I / флаттер (2257): https://github.com/flutter/flutter/issues/new?template=BUG.md I / флаттер (2257): I / флаттер (2257): когдаВозникло исключение, это был стек: I / flutter (2257): # 2 new Record.fromMap (пакет: firebase_demo / main.dart: 86: 16) I / flutter (2257): # 3 new Record.fromSnapshot (package: firebase_demo / main.dart: 91: 14) I / flutter (2257): # 4 _MyHomePageState._buildListItem (package: firebase_demo / main.dart: 59: 27) I / flutter (2257): # 5 _MyHomePageState._buildList.(пакет: firebase_demo / main.dart: 54: 40) I / flutter (2257): # 6 MappedListIterable.elementAt (dart: _internal / iterable.dart: 414: 29) I / flutter (2257): # 7 ListIterable.toList(dart: _internal / iterable.dart: 219: 19) I / flutter (2257): # 8 _MyHomePageState._buildList (package: firebase_demo / main.dart: 54: 71) I / flutter (2257): # 9 _MyHomePageState._buildBody,(пакет: firebase_demo / main.dart: 46: 16) I / flutter (2257): # 10 StreamBuilder.build (пакет: flutter / src / widgets / async.dart: 423: 74) I / flutter (2257): #11 _StreamBuilderBaseState.build (пакет: flutter / src / widgets / async.dart: 125: 48) I / flutter (2257): # 12 StatefulElement.build (пакет: flutter / src / widgets / framework.dart: 3809: 27)I / flutter (2257): # 13 ComponentElement.performRebuild (пакет: flutter / src / widgets / framework.dart: 3721: 15) I / flutter (2257): # 14 Element.rebuild (пакет: flutter / src / widgets /framework.dart: 3547: 5) I / flutter (2257): # 15 BuildOwner.buildScope (пакет: flutter / src / widgets / framework.dart: 2286: 33) I / flutter (2257): # 16 _WidgetsFlutterBinding & BindingBinding & GestureFindingBinding & ServicesBindingBindingBinding и привязкаBindingBindingпакет: flutter / src / widgets / binding.dart: 676: 20) I / flutter (2257): # 17 _WidgetsFlutterBinding и BindingBase & GestureBinding & ServicesBinding & SchedulerBinding и PaintingBinding & SemanticsBinding & RendererBinding./ flutter (2257): # 19 _WidgetsFlutterBinding & BindingBase & GestureBinding & ServicesBinding & SchedulerBinding.handleDrawFrame (package: flutter / src / scheduler / binding.dart: 930: 9) I / flutter (2257): # 20 _Widgets & привязка.dart: 842: 5) I / флаттер (2257): # 21 _invoke (дротик: ui / hooks.dart: 154: 13) I / флаттер (2257): # 22 _drawFrame (дарт: ui / hooks.dart: 143: 3) I / flutter (2257): (исключены 2 кадра из класса _AssertionError) I / flutter (2257): ════════════════════════════════════════════════════════════════════════════════════════════════════ I / 1.gpu (2257): аудит type = 1400 (0.0: 191179): avc: отказано {ioctl} для пути = "/ dev / kgsl-3d0" dev = "tmpfs" ino =15394 ioctlcmd = 945 scontext = u: r: untrusted_app_27: s0: c512, c768 tcontext = u: object_r: device: s0 tclass = chr_file permissive = 1 I / 1.gpu (2257): тип = 1400 аудит (0.0: 191180): avc: denied {read write} для path = "/ dev / kgsl-3d0" dev = "tmpfs" ino = 15394 scontext = u: r: untrusted_app_27: s0: c512, c768 tcontext = u: object_r: устройство: s0 tclass= chr_file permissive = 1 I / an.firebasedem (2257): Ожидание блокировки GC ProfileSaver I / an.firebasedem (2257): WaitForGcToComplete заблокировал ProfileSaver на ProfileSaver в течение 30,771 мс

1 Ответ

0 голосов
/ 16 мая 2019

Может быть, вы можете сначала проверить название вашей коллекции в базе данных огней.

stream: Firestore.instance.collection('your_collection_name_here').snapshots(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...