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

.NET Core中使用FirebaseAdmin在消息根级别添加priority字段

解决FirebaseAdmin .NET中Android退出状态下推送无法唤醒应用的问题

我之前也碰到过一模一样的问题——FirebaseAdmin 2.3.0版本的Message类只在AndroidConfig里提供了Priority属性,但当Android应用完全退出时,只有**根级别设置priority:10**才能让推送唤醒应用。下面是两种可行的解决方法:

方法一:直接发送原始JSON Payload

这种方式最直接,完全匹配你参考的JSON格式来构建消息:

using Newtonsoft.Json;
using FirebaseAdmin.Messaging;

// 构建符合要求的消息结构
var pushPayload = new
{
    token = item.Token,
    android = new
    {
        priority = "high"
    },
    priority = 10 // 根级别高优先级设置
};

// 序列化为JSON字符串
string jsonMessage = JsonConvert.SerializeObject(pushPayload);

// 发送推送
await FirebaseMessaging.DefaultInstance.SendAsync(jsonMessage);

方法二:结合强类型AndroidConfig发送

如果你想继续使用SDK提供的AndroidConfig强类型对象,也可以这样组合:

using Newtonsoft.Json;
using FirebaseAdmin.Messaging;

// 先构建强类型的Android配置
var androidConfig = new AndroidConfig
{
    Priority = Priority.High
};

// 组合成包含根级别priority的消息结构
var pushPayload = new
{
    Token = item.Token,
    Android = androidConfig,
    Priority = 10
};

string jsonMessage = JsonConvert.SerializeObject(pushPayload);
await FirebaseMessaging.DefaultInstance.SendAsync(jsonMessage);

为什么这样有效?

Firebase的根级别priority字段是跨平台的高优先级标识,当值为10时,Android系统会将这条推送标记为高优先级,即使应用处于完全退出状态,也会唤醒应用并触发通知展示。而仅在AndroidConfig里设置优先级,在应用退出场景下是不足以触发唤醒的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:50:16