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

.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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:25:02