Как получить простые данные из облачного Firestore для приложения Flutter? - PullRequest
0 голосов
/ 17 февраля 2019

Когда я запускаю, получаю следующую ошибку.Это основной код для трепетания в firebase.

Было выброшено следующее утверждение при построении MyHomePage (грязный, состояние: MyHomePageState # b163a): 'package: flutter / src / widgets / text.dart': сбойное утверждение: строка 235, позиция 15: 'данные! = null ': не

Пожалуйста, кто-нибудь может мне помочь, как решить эту проблему?

import 'dart:async';

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

Future<void> main() async {
  final FirebaseApp app = await FirebaseApp.configure(
    name: 'vscodefirebase',
    options: const FirebaseOptions(
      googleAppID: 'xxx',
      gcmSenderID: 'xxx',
      apiKey: 'xxxx',
      projectID: 'vscodefirebase',
    ),
  );
  final Firestore firestore = Firestore(app: app);
  await firestore.settings(timestampsInSnapshotsEnabled: true);

  runApp(MyApp());
}

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  MyHomePageState createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: StreamBuilder<QuerySnapshot>(
        stream: Firestore.instance.collection('books').snapshots(),
        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (!snapshot.hasData) return new Text('Loading...');
          return new ListView(
            children: snapshot.data.documents.map((DocumentSnapshot document) {
              return new ListTile(
                title: new Text(document['title']),
                subtitle: new Text(document['author']),
              );
            }).toList(),
          );
        },
      ),
    );
  }
}

1 Ответ

0 голосов
/ 17 февраля 2019

У вас есть текстовый виджет с нулевым текстом.

Здесь вы не указали свойство заголовка для MyHomePage

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

Так что этот текстовый виджет имеет нулевое текстовое значение.

  appBar: AppBar(
    title: Text(widget.title),
  ),

Чтобы решить эту проблему, объявите MyHomePage следующим образом:

MyHomePage(title: "My Home Page")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...