此问题在此处已有答案:
No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase(27个答案)
两年前就关门了。
flutterfire最近引入了一些变化,其中之一是在使用任何插件之前需要调用initializeApp()。
**可以直接调用它吗?**类似于以下内容:
void main() async {
await Firebase.initializeApp();
return runApp(App());
}
或者可能像这样没有异步等待
void main() {
Firebase.initializeApp();
return runApp(App());
}
我认为第一个例子更正确,但它阻止了main的执行,我不知道未来完成需要多少时间?
1条答案
按热度按时间jvidinwx1#
Firebase的唯一要求是在调用任何其他Firebase API之前调用
Firebase.initializeApp()
。如果不满足这个条件,它将引发一个异常,明确告诉你这一点。在我的代码中,我在main中调用它,这是我能想到if的最早的地方,它工作起来没有问题:
Firebase在这一级别的初始化几乎是即时的,因为它只是等待对本地代码的调用完成,而本地代码本身除了查找配置值之外什么也不做。
但是如果这对你来说太长了,你可以不使用
await
来调用它。这只是意味着你可能必须在你的代码中处理这个Future<FirebaseApp>
,在你访问Firebase的时候,通常是把它 Package 在一个FutureBuilder
中。