我正在处理一个继承的项目,所以我不确定我是否缺少配置设置或什么。我正在发送
{
NotificationHubClient hub = CreateClient();
return await hub.SendTemplateNotificationAsync(GetNotificationBody(message, phone, sessionId), userId);
}
public static Dictionary<string, string> GetNotificationBody(string message, string phone = "", string sessionId = "")
{
return new Dictionary<string, string>() { { "message", message }, { "phone", phone }, { "sessionId", sessionId } };
}
字符串
当我收到通知时,FCM的数据中只出现phone
和message
。
public override void OnMessageReceived(RemoteMessage message)
{
string messageText = "";
if (message.Data.ContainsKey("message"))
messageText = message.Data["message"];
string phone = "";
if (message.Data.ContainsKey("phone"))
phone = message.Data["phone"];
string sessionId = "";
if (message.Data.ContainsKey("sessionId"))
sessionId = message.Data["sessionId"];
// sessionId is empty
}
型
我测试了删除属性,消息和电话仍然显示在消息包中-值是空的,但键在那里。
我找不到任何设置了body值的东西-我以为它是自由形式的。我错过了什么吗?
1条答案
按热度按时间vnjpjtjt1#
您遇到的行为可能是由于FCM处理数据有效负载的方式。默认情况下,FCM仅在对应的值为非空时才在数据有效负载中包含键值对。如果值为空或null,FCM将从数据负载中忽略该键值对。但是,即使像你提到的那样正确地给出了键值对,上面的问题也很奇怪,不需要自定义配置设置。
的数据
的
字符串
*Azure通知中心指标:
的