如果没有 GoogleServices-Info.plist,Firebase 消息传递将无法工作

mir*_*cal 5 ios firebase flutter

我的印象是,这GoogleServices-Info.plist不再是强制性的,因为 FlutterFire CLI 很好地将配置文件放在 dart 代码上,例如firebase_options_flavor1.dart

应用程序可以在没有 GoogleServices-Info.plist 的情况下运行,但在添加 Firebase Messaging 后,如果没有此文件,它就会开始崩溃。

我的问题是:

  1. 还需要 GoogleServices-Info.plist 吗?
  2. 如果是,是否可以远程添加 firebase 配置?有了 Dart,这很容易。但很难注入本机代码。

Github 上的一些相关消息。准确描述我的问题的评论:https://github.com/firebase/flutterfire/issues/8119#issuecomment-1048738598

dart 初始化崩溃并发出通知的问题:https ://github.com/firebase/flutterfire/issues/7752

评论仅 dart 初始化不起作用的地方:https://github.com/firebase/flutterfire/issues/8119#issuecomment-1047823455

Sma*_*EGA 2

Firebase Messaging 和 GoogleServices-Info.plist 文件的问题是一个已知问题,并且已在 FlutterFire GitHub 存储库或互联网上的某个位置报告了该问题。

Firebase 仍需要 GoogleServices-Info.plist 才能在您的应用中正常工作。此文件包含 Firebase 项目的重要配置信息,包括应用程序的捆绑包 ID 和 API 密钥。

虽然可以使用 Dart 代码远程添加 Firebase 配置,但出于安全原因,不建议使用此方法。

推荐的方法是在您的项目中包含 GoogleServices-Info.plist 文件,然后让 Firebase 从此文件中读取配置信息。

该问题是由 Firebase Messaging 插件与 GoogleServices-Info.plist 文件之间的冲突引起的,可以通过删除 GoogleServices-Info.plist 文件或将 Firebase Messaging 插件更新到最新版本来解决。

关于您提到的评论,确实,在使用仅 Dart 初始化时,Firebase 初始化有时会失败,尤其是在 Firebase 云消息传递时。在这种情况下,建议使用本机初始化,因为它更可靠且不易出错。