.NET 4.8中FirebaseMessaging.SendAsync调用无响应问题求助
FCM HTTP v1迁移:SendAsync方法始终无法完成执行(.NET 4.8 C#)
我有一个基于.NET 4.8构建的C# EXE程序,需要从旧版FCM API迁移至HTTP v1版本,以继续向Android设备推送通知。旧方案未使用SDK,仅通过在请求头中携带密钥向FCM API发送POST请求。目前已添加FirebaseAdmin SDK并导入Google.Apis.Auth.OAuth2,但调用SendAsync方法时,该方法始终无法执行完成,消息也未发送。
相关代码如下:
public async Task<string> SendMessage() { string bericht = "test HTTP v1 GJS"; string firebaseToken = "a-valid-token"; // 实际代码中为有效令牌 var scopes = new string[] { "https://www.googleapis.com/auth/firebase.messaging" }; var path = Path.Combine(Directory.GetCurrentDirectory(), "my-service-account-json-download.json"); FirebaseApp.Create(new AppOptions() { Credential = GoogleCredential.FromFile(path).CreateScoped(scopes), }); var message = new Message { Token = firebaseToken, Notification = new Notification { Title = bericht, } }; // 以下代码行始终无法执行完成! string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); Console.WriteLine("Successfully sent message: " + response); return response; }
问题已解决
代码本身是有效的,故障根源在于Task<string>的处理方式。现在我修改了SendMessage方法,直接返回异步任务:
return FirebaseMessaging.DefaultInstance.SendAsync(message);
调用时通过await等待任务执行完成:
string line = await mfb.SendMessage();
感谢大家的关注与支持。
内容的提问来源于stack exchange,提问作者Gert-Jan
相关产品推荐
相关产品推荐

