.NET MAUI(.NET 6.0)环境下如何获取FCM设备ID?
.NET MAUI 获取FCM设备ID解决方案
适配依赖包
直接使用Firebase.Maui.Messaging NuGet包,这是专为.NET MAUI打造的客户端Firebase消息推送库,完美替代原Xamarin环境下的Xamarin.Firebase.Messaging。
具体实现步骤
安装依赖
在MAUI项目中安装Firebase.Maui.Messaging包,选择适配.NET 6.0的版本。配置Firebase服务
在MauiProgram.cs中注册Firebase消息服务:builder.Services.AddFirebaseMessaging(options => { options.SenderId = "你的Firebase项目发送者ID"; options.ServerKey = "你的Firebase服务器密钥"; });获取FCM Token
通过依赖注入IFirebaseMessaging接口,调用异步方法获取Token:private readonly IFirebaseMessaging _firebaseMessaging; public MainPage(IFirebaseMessaging firebaseMessaging) { _firebaseMessaging = firebaseMessaging; InitializeComponent(); _ = FetchFcmTokenAsync(); } private async Task FetchFcmTokenAsync() { try { var token = await _firebaseMessaging.GetTokenAsync(); // 将token提交到后端服务器存储,用于后续推送 Console.WriteLine($"FCM设备ID: {token}"); } catch (Exception ex) { Console.WriteLine($"获取Token失败: {ex.Message}"); } }监听Token刷新
当Firebase自动刷新Token时,通过事件监听获取新Token并同步更新:_firebaseMessaging.TokenRefreshed += (sender, newToken) => { Console.WriteLine("FCM Token已刷新,新Token: " + newToken); // 此处将新Token同步到后端 };
平台配置要点
- Android:将
google-services.json放在Platforms/Android目录,设置文件的生成操作为GoogleServicesJson;在AndroidManifest.xml中添加推送权限(如android.permission.POST_NOTIFICATIONS)。 - iOS:将
GoogleService-Info.plist放在Platforms/iOS目录,设置生成操作为BundleResource;在Info.plist中启用后台推送模式,添加remote-notification到UIBackgroundModes数组,并配置推送权限请求。
内容的提问来源于stack exchange,提问作者Mauro Bernal
相关产品推荐
相关产品推荐

