调用Firebase.initializeApp()返回“无法在通道上建立连接” - Flutter + Firebase

35

我正在使用Flutter(截至2022年7月1日的最新版本)与Firebase工作,当我尝试在我的Main函数中调用Firebase.initializeApp()时,它会返回以下错误:

'[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)'

这是我的代码:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Firebase.initializeApp();
  runApp(const MyApp());
}
任何帮助都将不胜感激。

1
欢迎来到SO!您使用的是哪个操作系统?根据pub.dev包的说明,它仅支持iOSAndroidmacOSWeb - lepsch
@lepsch,感谢您的回复,我目前正在使用Android。 - It's Guardian Time
1
另外,将 Firebase.initializeApp(); 更正为 await Firebase.initializeApp(); - Lalit Fauzdar
2
每个人在过去的7-8个小时里都面临着同样的问题。请查看Flutter的存储库中报告的错误此处,以及这个社区问题此处 - Lalit Fauzdar
我的设备没有连接到互联网 ‍♂️ - David Chopin
显示剩余2条评论
11个回答

33
我通过使用flutter pub outdatedflutter pub upgrade firebase_... 将所有firebase依赖升级到最新版本,解决了这个问题。我在添加了firebase_messaging插件v11.4.4之后遇到了这个问题,可能与firebase_core_platform_interface的更改有关。

1
已经解决了我的问题。看起来我的问题根源是升级了库的 Firebase 依赖项,但没有升级项目顶层的其他 Firebase 依赖项。 - Jeff Neet

11

我也在更新pub之后遇到了这个问题。通过执行以下步骤进行修复: flutter clean 然后删除pubspec.lock文件。


7

我已更新以下依赖项:

dependency_overrides:
  firebase_core_platform_interface: 4.4.1

执行此命令并更新Firebase依赖项:

flutter pub upgrade firebase_core

flutter pub upgrade firebase_messaging

现在正常工作。


6

进行Flutter清除操作并使用以下命令升级Firebase核心:

    flutter pub upgrade firebase_core

运行

    dart pub global activate flutterfire_cli
    flutterfire configure

重新初始化Firebase。我在添加app_check支持后遇到了这个问题。

2

问题似乎出在核心平台接口上。 添加firebase_core_platform_interface: 4.4.0并调整所有其他firebase依赖项,使它们与此库兼容。我将所有版本降级到36天前的发布版本,最终解决了问题。


1
在我的情况下,我开始了一个新项目,我只启用了电话验证提供程序,而没有先启用电子邮件提供程序。所以请确保在Firebase设置中同时启用电子邮件和电话提供程序。

1
我刚刚构建了一个新的Flutter应用程序,当我在浏览器中初始化Firebase App并运行它,而不是在Android模拟器中运行时,出现了这个错误。我正在使用VS Code,并且您可以在右侧底部任务栏更改目标设备。
解决方案是在Android模拟器中运行它。我不知道是否需要设置WebView权限,但我没有计划部署到Web。

0
在我的情况下,我传递了空参数,所以请检查你的参数。

0
我不知道到底是什么导致了这个问题。但是我通常会先执行flutter clean,然后升级所有的Firebase依赖项。你可以运行flutter pub outdated来查看过时的依赖项,然后使用flutter pub upgrade来升级你的依赖项,例如flutter pub upgrade firebase_auth
有趣的是,即使在执行了上述操作后,我仍然遇到了以下问题: [firebase_auth/channel-error] 无法在通道上建立连接。后来我意识到空的电子邮件和密码字段导致了错误。只需填写这些字段,问题就解决了。

0

我曾经遇到过同样的问题,通过缩小规模(感谢git),解决了获取Flutter依赖项的问题。编译并按照广告所述工作并不容易。欢迎加入:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接