当前位置: 首页 > 知识库问答 >
问题:

在主[duplicate]中调用FireBase.InitializeApp()可以吗

颛孙正卿
2023-03-14

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

主要叫它行吗?类似这样的事情:

void main() async {
  await Firebase.initializeApp();
  return runApp(App());
}
void main() {
  Firebase.initializeApp();
  return runApp(App());
}

共有1个答案

段干庆
2023-03-14

Firebase的唯一要求是在调用任何其他Firebase API之前调用Firebase.InitializeApp()。如果不满足该条件,它将引发一个异常,明确地告诉您这一点。

在我的代码中,我用我的main来调用它,这是我能想到的最早的地方,它可以正常工作,没有问题:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  ...

Firebase在这个级别上的初始化几乎是即时的,因为它只是等待对本机代码的调用完成,而本机代码本身除了查找配置值之外没有其他操作。

但是如果这对您来说花费的时间太长,您可以在不使用await的情况下调用它。这只是意味着您可能必须在以后访问FireBase的代码中处理future

 类似资料:
  • 我有点明白这个错误,但不管我怎么说,它都不起作用...我试图从FireBase中只返回一个字符串和一个数字值。我也做了所有的要求。android文件夹中的build.graddle和android/App文件夹中的build.gradle。一切。除此之外,我还做了:cloud_firestore: 对pubspec.yaml的依赖关系。现在我的main.dart看起来是这样的,但是它给出了太多的错

  • 在我的应用程序中,我试图优雅地处理当主控程序由于某些原因不可用时(例如DC之间的连接中断)的情况。在这种情况下,前端应该禁用写操作,而缓存数据库应该用于某些读操作。 我尝试使用命令。它在shell中工作,但在主程序不可用时,它不能在中工作,因为命令不在列表中。结果我有个例外: 当然,我可以处理这个异常,但它是在超时(在我的情况下是10秒)后生成的。但在我的情况下太长了。我更喜欢立即反应,如果有时会

  • 我正在构建一个Flutter应用程序,我已经集成了Firebase,但是当我点击一个按钮注册、登录或注销时,我总是得到这个错误。我见过其他人问过同样的问题,但似乎没有一个对我有效。我正在使用Flutter和Android Studio。如何修复此问题? 这是我的代码的节选 下面是引发的异常

  • 我想在使用RXJava的非主线程中调用“onSensorChanged”方法。 这是我的传感器代码。

  • 所以我试图用Firebase制作一个flutter应用程序,它工作得非常好,但是当我运行该应用程序时,我得到了这个错误: 但问题是,我的代码中有一行: 我怎样才能摆脱这个?该应用程序运行良好,但它非常分散注意力,感谢任何帮助,谢谢。

  • 问题内容: 我正在研究过去1年的反应。我们遵循的约定是在数据到达后进行API调用,获取数据和setState。这将确保组件已安装并且设置状态将导致重新渲染该组件,但我想知道为什么我们不能在或中设置setState。 官方文件说: 在挂载发生之前立即调用componentWillMount()。在render()之前调用它,因此在此方法中设置状态不会触发重新渲染。避免在此方法中引入任何副作用或订阅。