firebase - 如何在 Flutter 中设置不同的 firebase 环境

我正在尝试弄清楚如何在 flutter 项目中设置不同的 firebase 环境。

我了解如何在 firebase 中执行此操作,我创建了两个项目,一个用于生产,一个用于测试。然后,在 iOS 或 Android 项目中,我可以使用各种方法在这两种环境之间切换,使用单独的 google-services.jsonGoogleServices-Info.plist 文件。

在 Flutter 中我找到了 this描述了如何分离环境,但它只解释了如何区分flutter代码中的环境。

如何让这个环境在编译时更改 iOS 和 Android 的构建?甚至在构建时允许文件复制钩子(Hook)就足够了。

最佳答案

您可以使用 FirebaseApp.configure 切换帐户。您可以提供自己的解决方案或 secret 开发面板来在它们之间切换。

当您为 TestFlight 部署时,解决方案将构建 flavor ,而 plist 实现会将您锁定在构建中 + 它们很困惑。

这是一个示例:(您也可以使用 Assets 。)

// Load a named file.
let filePath = Bundle.main.path(forResource: "MyGoogleService", ofType: "plist")
guard let fileopts = FirebaseOptions(contentsOfFile: filePath!)
  else { assert(false, "Couldn't load config file") }
FirebaseApp.configure(options: fileopts)

https://stackoverflow.com/questions/50358185/

相关文章:

android - 如何在 Flutter 中禁用发布版本中的所有日志 [debugPrint()]

dart - 如何删除 RadioListTile 上的内部填充,以便可以连续使用 3 个 Radi

flutter - 如何使图像的 1/3 占据全屏

flutter - 相对定位小部件

android - 如何从我的 Flutter 应用程序控制网络缓存?

flutter - 在 ListView 中的键盘上方滚动 TextFormField

dart - 防止滚动的英雄跳到应用栏顶部

flutter - 需要不同屏幕纵横比和纵向和横向模式的聊天屏幕背景图片

android-studio - Flutter - 尝试运行 Flutter 应用程序时模拟器未启

firebase - 如何使用 Firebase 在 Flutter 中进行电话身份验证?