如何在Android应用中接入两个Firebase项目区分UAT与生产环境?
解决方案
1. 拆分两个独立Firebase项目
- 直接在Firebase控制台创建两个完全独立的项目,一个专门对应UAT环境,另一个对应生产环境。
- 给测试团队开通UAT项目的查看权限,产品/运营团队仅开放生产项目的权限,确保各团队只能访问对应环境的数据,互不干扰。
2. 配置应用的环境切换逻辑
- 从两个Firebase项目分别下载对应平台的配置文件:Android为
google-services.json,iOS为GoogleService-Info.plist,将它们放在项目的不同目录下,比如:- Android:
app/src/uat/google-services.json(UAT环境)、app/src/production/google-services.json(生产环境) - iOS:单独创建UAT和Production文件夹,分别存放对应的plist文件
- Android:
- 在项目构建配置中设置环境匹配规则:
- Android:在
build.gradle中添加productFlavors配置,指定不同flavor对应的配置文件路径:
构建时选择对应flavor,SDK会自动加载对应目录的配置文件。android { productFlavors { uat { applicationIdSuffix ".uat" } production { // 生产环境默认配置 } } } - iOS:在Xcode中创建两个Target(UAT和Production),分别绑定对应的plist文件,或通过Build Settings中的
Info.plist File路径切换配置。
- Android:在
3. 确保数据上报完全隔离
- 应用代码无需修改Analytics的上报逻辑,只要配置文件加载正确,Firebase SDK会自动将数据发送到对应项目的Analytics模块中。
- 构建UAT版本时,所有数据只会上报到UAT项目;生产版本的数据则全部进入生产项目,彻底解决数据混流问题。
4. 验证隔离效果
- 构建UAT版本包,触发若干测试事件,前往UAT项目的Analytics后台确认数据是否正常上报。
- 测试生产版本,验证生产项目中仅存在生产环境的数据,UAT项目中仅显示UAT环境的数据,确认隔离生效。
内容的提问来源于stack exchange,提问作者Anees Ani
相关产品推荐
相关产品推荐

