nam*_*e__ 0 dart firebase flutter google-cloud-firestore
我有一个返回主页的主文件,并且在主页上我尝试调用一个新文件(test.dart)。现在的问题是这个test.dart文件抛出了一些我无法解决的错误,因为我对 flutter 和 Firebase Firestore 完全陌生。这是代码test.dart:
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
// import 'package:vola1/colors.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
class test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
// floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
body: StreamBuilder(
stream: FirebaseFirestore.instance
.collection('countries')
.doc('nW9L4LGpn2MZVyiTyUII')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Text('Loading data.. please wait..');
return Container();
},
));
}
}
Run Code Online (Sandbox Code Playgroud)
这是它抛出的错误
======== Exception caught by widgets library =======================================================
The following FirebaseException was thrown building test(dirty):
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
The relevant error-causing widget was:
test file:///D:/flutter%20course/vola1/lib/home.dart:88:49
When the exception was thrown, this was the stack:
#0 MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:122:5)
#1 Firebase.app (package:firebase_core/src/firebase.dart:54:41)
#2 FirebaseFirestore.instance (package:cloud_firestore/src/firestore.dart:40:21)
#3 test.build (package:vola1/test.dart:15:33)
#4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4569:28)
...
====================================================================================================
Run Code Online (Sandbox Code Playgroud)
主文件
import 'package:flutter/material.dart';
import 'home.dart';
void main() async {
runApp(MyApp());
await Firebase.initializeApp();
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Home(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
按钮调用 test.dart 的主页
ElevatedButton(
onPressed: () => {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => test(),
),
),
},
Run Code Online (Sandbox Code Playgroud)
在使用Firebase之前,你必须调用Firebase.initializeApp(); 你可以这样做:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15261 次 |
| 最近记录: |