Xamarin项目中Firebase推送通知功能无法正常运行问题求助
FCM功能不触发、无法获取Token的可能原因
- 首要问题:当前使用的Genymotion模拟器缺少Google Play服务核心组件
FCM运行强依赖Google移动服务(GMS)框架,未安装Google Play Store的Genymotion镜像默认不内置GMS,FCM SDK无法完成初始化,自然不会触发OnTokenRefresh回调、也无法接收推送。可以先更换自带GMS的物理安卓设备,或者刷入GMS包到当前Genymotion模拟器,也可使用Android官方模拟器的带Google Play的镜像验证。 google-services.json文件配置错误
请确认文件的生成操作已正确设置:在VS中右键点击google-services.json文件,选择属性,将生成操作设置为GoogleServicesJson,若缺少该选项请检查是否已正确安装Xamarin.Firebase.Messaging相关NuGet包。同时确认该文件是从Firebase控制台对应包名的项目下下载的,包名、签名信息和项目配置完全一致。- Android清单配置缺失
检查AndroidManifest.xml中是否已正确声明FCM所需的权限、服务、接收器:- 必须包含
com.google.android.c2dm.permission.RECEIVE、android.permission.INTERNET、android.permission.WAKE_LOCK权限 - Android 13及以上系统必须动态申请
POST_NOTIFICATIONS权限,未授予权限时推送无法展示 - 已正确注册
FirebaseMessagingService、InstanceIdReceiver等FCM必需的组件
- 必须包含
- NuGet包版本不兼容
确认所有Firebase相关NuGet包版本保持一致,且和你使用的Xamarin.Forms版本、Android编译版本匹配,避免跨版本依赖冲突导致FCM初始化失败。 - 代码注册逻辑错误
检查是否在Application的OnCreate方法中提前调用了FirebaseApp.InitializeApp(this),以及OnTokenRefresh事件是否在MessagingService初始化前就完成了绑定,避免事件漏触发。
内容的提问来源于stack exchange,提问作者Chim Di Tru
相关产品推荐
相关产品推荐

