Firebase 推送通知在 PWA (ReactJS) 中不显示图标

Firebase Push Notification not showing icon in PWA (ReactJS)

我用 ReactJS 创建了一个 PWA 应用程序。 我还实现了 Firebase Cloud Messaging 以在设备上显示推送通知。

当我在 android phone 上安装 PWA 时,我收到了正确的推送通知。

但我找不到如何将图标发送到我的通知。

我正在使用 FirebaseAdmin SDK 完成的 ASP.NET Core WebApi (2.2) 触发通知。

我的 manifest.json 来自 PWA 的文件看起来是正确的。 (图标为 192x192 和 512x512 png) 我可以安装它并且它正在获取正确的应用程序图标。

我触发通知的代码。

public async Task<ActionResult> Test()
{
    var message = new Message()
    {
        Notification = new Notification()
        {
            Title = "My Title",
            Body = "My Body",
            ImageUrl = "MY IMAGE URL"
        },
        Token = "MY ANDROID APP TOKEN"
    };

    await FirebaseMessaging.DefaultInstance.SendAsync(message);

    return Ok();
}

我找不到添加图标的方法。 (现在我的应用程序的第一个字母默认为灰色:E)

还尝试了以下代码,但 Android 部分没有做任何事情。

var message = new Message()
{
    Android = new AndroidConfig()
    {
        Notification = new AndroidNotification()
        {
            Title = "My Title",
            Body = "My Body",
            ImageUrl = "MY IMAGE",
            Icon = "MY ICON",
            ClickAction = "MY URL"
        }
    },
    Notification = new Notification()
    {
        Title = "My Title",
        Body = "My Body",
        ImageUrl = "MY IMAGE"
    },
    Token = "MY TOKEN"
};

await FirebaseMessaging.DefaultInstance.SendAsync(message);

Android 设备上的图标。 展开通知时显示图像。

如果我使用 Firebase 提供的 api:

https://fcm.googleapis.com/fcm/send

我可以发送一个通知图标,这是有效的。 我怎样才能让它与 FirebaseAdmin SDK 一起使用?

我发现了问题...

我在代码中使用了错误类型的 "Notification"。

public async Task<ActionResult> Test()
{
    var message = new Message()
    {
        Webpush = new WebpushConfig()
        {
            Notification = new WebpushNotification()
            {
                Title = "My Title",
                Body = "My Body",
                Icon = "MY ICON"
            },
        },
        Token = "MY TOKEN"
    };

    await FirebaseMessaging.DefaultInstance.SendAsync(message);

    return Ok();
}

有了 WebpushConfig & WebpushNotification,我得到了我想要的。