'Error "[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()" is thrown [duplicate]
I have a main file which returns home page and on the home page I am trying to call a new file (test.dart
). Now the problem is this test.dart
file is throwing some errors which I am unable to solve as I am completely new to flutter and Firebase Firestore.
Here is the code for 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();
},
));
}
}
This is the error it is throwing
======== 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)
...
====================================================================================================
main file
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(),
);
}
}
home page where the button is calling test.dart
ElevatedButton(
onPressed: () => {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => test(),
),
),
},
Solution 1:[1]
Before using Firebase, you have to call Firebase.initializeApp(); You could do it like this:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | APP |