Cordova应用能否禁用Firebase Analytics仅保留FCM推送通知?
当然可以!你遇到的问题是因为phonegap-plugin-push默认可能会引入Firebase Analytics的依赖,而且单纯修改google-services.json的services部分不足以完全移除Analytics相关组件。下面是具体的解决步骤:
1. 确保你的google-services.json只包含FCM配置
首先,回到Firebase控制台的项目设置页面,找到你的Android应用:
- 如果之前启用了Analytics,先在控制台的Analytics页面禁用该功能(或者直接为这个应用重新生成一份不包含Analytics的配置文件)
- 重新下载
google-services.json,替换项目中的旧文件。此时新的json文件里应该没有analytics_service相关的节点,只有messaging_service的配置。
2. 修改phonegap-plugin-push的配置,排除Analytics依赖
这个插件支持通过变量来控制是否引入Analytics。你可以通过两种方式配置:
方式一:安装插件时指定变量
如果还没安装插件,或者需要重新安装:
cordova plugin add phonegap-plugin-push --variable SENDER_ID="你的FCM Sender ID" --variable FIREBASE_ANALYTICS_VERSION="none"
方式二:修改config.xml中的插件配置
如果已经安装了插件,直接在config.xml里添加变量:
<plugin name="phonegap-plugin-push" spec="你使用的插件版本"> <variable name="SENDER_ID" value="你的FCM Sender ID" /> <variable name="FIREBASE_ANALYTICS_VERSION" value="none" /> </plugin>
设置FIREBASE_ANALYTICS_VERSION="none"会告诉插件不要引入任何Firebase Analytics的依赖包。
3. 清理并重新构建项目
之前的构建缓存可能还保留了Analytics的相关文件,所以必须执行清理操作:
cordova clean android cordova build android
4. 验证Analytics是否被移除
构建完成后,你可以检查Android项目的platforms/android/app/build.gradle文件,确认其中没有com.google.firebase:firebase-analytics相关的依赖项。另外,也可以通过Android Studio的APK Analyzer查看APK内容,确认没有Analytics相关的类文件。
为什么之前删除services部分没用?
你之前修改google-services.json的services部分,其实并没有触及核心问题——插件本身默认会引入Analytics依赖,而且google-services gradle插件会根据json中的配置自动关联依赖。只有同时从插件配置和json配置两方面入手,才能彻底移除Analytics。
内容的提问来源于stack exchange,提问作者Cyrille

