【问题标题】:How to Get Simple Data From Cloud Firestore For Flutter App?如何从 Cloud Firestore 获取 Flutter App 的简单数据?
【发布时间】:2019-07-11 00:42:43
【问题描述】:

当我运行时出现以下错误。这些是flutter到firebase的基本代码。

在构建 MyHomePage(dirty, state: MyHomePageState#b163a) 时抛出了以下断言: 'package:flutter/src/widgets/text.dart':断言失败:第 235 行 pos 15:'data != 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(),
          );
        },
      ),
    );
  }
}

【问题讨论】:

    标签: firebase flutter google-cloud-firestore flutter-dependencies


    【解决方案1】:

    您有一个带有空文本的 Text 小部件。

    这里,您没有输入 MyHomePage 的 title 属性

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

    所以这个 Text 小部件的文本值为空。

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

    要解决这个问题,请像这样声明 MyHomePage:

    MyHomePage(title: "My Home Page")
    

    【讨论】:

    • 感谢您的精彩回复。但我仍然低于错误。 [{0}] 无法解析名称。状态={1}
    • @fluttertalk 嗯,我从未见过那个错误。可能是flutter clean可以修复它吗?如果您打开另一个堆栈溢出问题,我可能会为您提供帮助!
    猜你喜欢
    • 2022-06-24
    • 2020-03-17
    • 2020-05-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2021-02-24
    相关资源
    最近更新 更多