首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主要调用firebase.initializeApp()可以吗?

主要调用firebase.initializeApp()可以吗?
EN

Stack Overflow用户
提问于 2020-08-29 23:31:58
回答 1查看 5.3K关注 0票数 6

flutterfire最近引入了一些更改,其中之一是需要在使用任何插件之前调用initializeApp()。

主要是这样称呼它的,是这样的:

代码语言:javascript
复制
void main() async {
  await Firebase.initializeApp();
  return runApp(App());
}

或者像这样,不需要异步等待

代码语言:javascript
复制
void main() {
  Firebase.initializeApp();
  return runApp(App());
}

我认为第一个例子比较正确,但它阻碍了主体的执行,而我不知道未来要多长时间才能完成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-29 23:36:33

Firebase的唯一要求是在调用任何其他Firebase API之前调用Firebase.initializeApp()。如果不满足该条件,则会显式地引发异常。

在我的代码中,我在我的主代码中称之为它,这是我能想到的最早的地方,而且没有问题:

代码语言:javascript
复制
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  ...

在这个级别上,Firebase的初始化几乎是即时的,因为它只是在等待对本机代码的调用完成,而本机代码本身只会查找配置值。

但是,如果这对您来说太长了,您可以在没有await的情况下调用它。这只是意味着您可能必须在代码的后面处理这个Future<FirebaseApp>,在代码中访问Firebase,通常是将其包装在一个FutureBuilder中。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63652710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档