firebase - 如何从 Cloud Firestore 获取 Flutter App 的简单数据?

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

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

构建 MyHomePage 时抛出以下断言(脏,状态:MyHomePageState#b163a): 'package:flutter/src/widgets/text.dart': 断言失败:第 235 行 pos 15: 'data != null': is not

拜托,谁能帮我解决这个问题?

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(),
          );
        },
      ),
    );
  }
}

最佳答案

您有一个包含空文本的文本小部件。

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

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")

关于firebase - 如何从 Cloud Firestore 获取 Flutter App 的简单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733599/

相关文章:

Firebase 存储下载完整性

node.js - 为什么 Firebase Firestore 会计算读取操作,而我只添加新文档?

firebase - 在 Firestore 中创建对 Cloud Storage 文档的引用

Java/Android - 从 Firebase 将 ArrayList 作为对象加载时出错

ios - ld : framework not found FirebaseAnalytics after upgrading from 4. x.x 到 5.x.x firebase 通过 cocoapods

Azure - Firebase 远程配置等效项

flutter - 将int内置到内置函数中不会改变骰子的图像,但是当将其移到@override之上时,骰子图像会发生变化。为什么?

android - 如何在 Flutter 的 TextFormField 中添加提示?

flutter - 通过类型作为构造函数,并将其用作提供程序包的泛型

javascript - 检查 Firestore 文档是否存在并返回 bool 值