我正在尝试弄清楚如何在 flutter 项目中设置不同的 firebase 环境。
我了解如何在 firebase 中执行此操作,我创建了两个项目,一个用于生产,一个用于测试。然后,在 iOS 或 Android 项目中,我可以使用各种方法在这两种环境之间切换,使用单独的 google-services.json
或 GoogleServices-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/