You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Maui中iOS/Android获取FCM Token及替代NuGet包咨询

替代Plugin.Firebase的.NET MAUI FCM Token获取方案

方案一:使用Google官方Firebase MAUI绑定包

这是最稳定的官方适配方案,可规避第三方包的冲突问题:

  1. 移除项目中所有旧的Xamarin Firebase相关包,清理NuGet缓存(执行命令:dotnet nuget locals all --clear)
  2. 安装适配MAUI的Firebase NuGet包:
    • 核心包:Google.Firebase.Core
    • 消息推送包:Google.Firebase.Messaging
  3. 平台配置:
    • Android:将google-services.json放入Platforms/Android目录,设置其生成操作为GoogleServicesJson
    • iOS:将GoogleService-Info.plist放入Platforms/iOS目录,设置生成操作为BundleResource
  4. 获取Token的代码:
    • Android:继承FirebaseMessagingService,重写OnNewToken方法直接获取Token
    • iOS:在AppDelegate的FinishedLaunching方法初始化Firebase后,通过Messaging.SharedInstance.FcmToken获取Token,同时监听Messaging.SharedInstance.NotificationTokenRefresh事件处理Token更新

方案二:原生平台直接调用FCM(无第三方包依赖)

如果仅需获取Token,可跳过第三方包,直接通过原生代码实现:

  • Android:
    1. 在AndroidManifest.xml中添加FCM服务声明
    2. 创建自定义FirebaseMessagingService子类,重写OnNewToken方法拿到Token后,通过MAUI的MainThread传递到共享代码层
  • iOS:
    1. 在AppDelegate中请求推送权限并初始化Firebase
    2. 通过Messaging.SharedInstance.FcmToken获取当前Token,监听NotificationTokenRefresh事件处理Token更新

注意事项

  • 彻底清理项目中残留的Xamarin Firebase包,这类包与.NET 7 MAUI环境存在兼容性冲突,是引发MSB3030错误的核心原因
  • 测试前执行清理并重新生成操作,避免缓存文件导致的异常

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:35:01