![](/img/trans.png)
[英]No Firebase App has been created - call Firebase.initializeApp()
[英]Firebase Exception building a Consumer<UserManager> // [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
我陷入了這個錯誤,我什至無法開始想辦法解決它。 我嘗試了很多方法來設置 Firebase.initializeApp(); 進入我的代碼,但我沒有設法以正確的方式做到這一點。 我的 pubspec.yaml 中已經有了這些包,包括 Firebase Core、Auth、Cloud Firestore...我相信我的用戶管理器是正確的,但我是否必須在其中調用 firebase 初始化? 我把初始化 Firebase 放在我的 main 上,就像這樣:
Future<void> main() async {
runApp(MyApp());
Firebase.initializeApp();
}
這是例外:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following FirebaseException was thrown building Consumer<UserManager>(dirty, dependencies: [_InheritedProviderScope<UserManager>]):
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
The relevant error-causing widget was:
Consumer<UserManager> file:///C:/Users/adrie/Documents/renata_osorio_nails/lib/screens/login/login_screen.dart:40:22
When the exception was thrown, this was the stack:
#0 MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:118:5)
#1 Firebase.app (package:firebase_core/src/firebase.dart:52:41)
#2 FirebaseAuth.instance (package:firebase_auth/src/firebase_auth.dart:37:47)
#3 new UserManager (package:renata_osorio_nails/models/user_manager.dart:11:42)
#4 MyApp.build.<anonymous closure> (package:renata_osorio_nails/main.dart:20:22)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
我在登錄屏幕中的代碼如下:
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:renata_osorio_nails/helpers/validators.dart';
import 'package:provider/provider.dart';
import 'package:renata_osorio_nails/models/user_manager.dart';
import 'package:renata_osorio_nails/models/user.dart';
class LoginScreen extends StatelessWidget {
final TextEditingController emailController = TextEditingController();
final TextEditingController passController = TextEditingController();
//Controladores de texto
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
//Chave de formulário
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
//Chave Snackbar
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldKey,
appBar: AppBar(
title: const Text('Entrar'),
centerTitle: true,
actions: [FlatButton(
onPressed: (){
Navigator.of(context).pushReplacementNamed('/signup');
},
textColor: Colors.white,
child: const Text('CRIAR CONTA',
style: TextStyle(fontSize: 14),),
)],
),
body: Center(
child: Card(
margin: const EdgeInsets.symmetric(horizontal: 16),
child: Form(
key: formKey,
child: Consumer<UserManager>(
builder: (_, userManager, child){
return ListView(
padding: const EdgeInsets.all(16),
shrinkWrap: true,
children: [
TextFormField(
controller: emailController,
enabled: !userManager.loading,
decoration: const InputDecoration(hintText: 'E-mail'),
keyboardType: TextInputType.emailAddress,
autocorrect: false,
validator: (email) {
if(!emailValid(email))
return 'E-mail inválido';
return null;
},
),
const SizedBox(
height: 16,
),
TextFormField(
controller: passController,
enabled: !userManager.loading,
decoration: const InputDecoration(hintText: 'Senha'),
autocorrect: false,
obscureText: true,
validator: (pass) {
if (pass.isEmpty || pass.length < 8)
return 'Senha inválida';
return null;
},
),
Align(
alignment: Alignment.centerRight,
child: FlatButton(
onPressed: () {},
padding: EdgeInsets.zero,
child: const Text('Esqueci minha senha'),
),
),
const SizedBox(
height: 16,
),
SizedBox(
height: 44,
child: RaisedButton(
onPressed: userManager.loading ? null : () {
if(formKey.currentState.validate()){
context.read()<UserManager>().signIn(
user: AppUser(
email: emailController.text,
password: passController.text,
),
onFail: (e){
scaffoldKey.currentState.showSnackBar(
SnackBar(
content: Text ('Falha ao entrar: $e'),
backgroundColor: Colors.red,
)
);
},
onSuccess: (){
//TODO: Fechar a tela de login
}
);}},
color: Theme.of(context).primaryColor,
disabledColor: Theme.of(context).primaryColor.
withAlpha(100),
textColor: Colors.white,
child: userManager.loading ?
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation(Colors.white),
) :
const Text(
'Entrar',
style: TextStyle(fontSize: 18),
),
),
),
],
);
},
),
)),
),
);
}
}
我怎樣才能解決這個問題?
您是否檢查過該行是否已執行? 如果不是,請嘗試將此行放在runApp()
調用之前或小部件的initState()
方法中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.