C# FireBase.NET库的Web API问题
在我基于C#的Web API上,我已经实现了Google FireBase推送,并且已经可以发送带有标题和正文的推送消息,但是当我尝试向其中添加数据负载时,它不接受。错误是: 无法将类型“System.Collections.Generic.Dictionary”隐式转换为“Firebase.NET.Contracts.IPayload”。存在显式转换(是否缺少强制转换?) 这是我的密码 SendFireBasePush.cs:C# FireBase.NET库的Web API问题,c#,asp.net-mvc,firebase,C#,Asp.net Mvc,Firebase,在我基于C#的Web API上,我已经实现了Google FireBase推送,并且已经可以发送带有标题和正文的推送消息,但是当我尝试向其中添加数据负载时,它不接受。错误是: 无法将类型“System.Collections.Generic.Dictionary”隐式转换为“Firebase.NET.Contracts.IPayload”。存在显式转换(是否缺少强制转换?) 这是我的密码 SendFireBasePush.cs: using System; using System.Linq;
using System;
using System.Linq;
using System.Web;
using Firebase.NET.Contracts;
using Firebase.NET.Messages;
using Firebase.NET.Notifications;
using Firebase.NET;
using System.Configuration;
// using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace SampleAPI
{
public class SendFirebasePush
{
public async Task SFPExecute(string FireBasePushRegToken, string FireBasePushTitle, string FireBasePushBody, Dictionary<string, string> FireBasePushData)
{
string[] ids = {
//registration tokens here
FireBasePushRegToken
};
var requestMessage = new RequestMessage
{
Body =
{
RegistrationIds = ids,
Notification = new CrossPlatformNotification
{
//Title = "Message Received:",
Title = FireBasePushTitle,
// Body = "Check your Inbox.",
Body = FireBasePushBody,
Sound = "default"
},
/*
Data = new Dictionary<string, string>
{
{ "leage", "UEFA" },
{ "game", "Albania vs Kosovo" },
{ "score", "1:1" }
}
*/
// this part he doesn´t like and I am getting the mentioned error. Also creating a new dictionary described above doesn´t work.
Data = FireBasePushData
}
};
// securely pointing to Azure AppSettings
var GoogleFirebasePushKey = ConfigurationManager.AppSettings["GoogleFirebasePush_SampleAPI"];
var pushService = new PushNotificationService(GoogleFirebasePushKey);
var responseMessage = await pushService.PushMessage(requestMessage);
}
}
}
使用系统;
使用System.Linq;
使用System.Web;
使用Firebase.NET.Contracts;
使用Firebase.NET.Messages;
使用Firebase.NET.Notifications;
使用Firebase.NET;
使用系统配置;
//使用System.Collections.Generic;
使用System.Collections.Generic;
使用System.Threading.Tasks;
名称空间示例API
{
公共类SendFirebasePush
{
公共异步任务SFPExecute(字符串FireBasePushRegToken、字符串FireBasePushTitle、字符串FireBasePushBody、字典FireBasePushData)
{
字符串[]ID={
//这里有注册代币
FireBasePushRegToken
};
var requestMessage=新的requestMessage
{
身体=
{
注册ID=ID,
通知=新的跨平台通知
{
//Title=“收到的消息:”,
标题=FireBasePushTitle,
//Body=“检查您的收件箱。”,
Body=FireBasePushBody,
Sound=“默认值”
},
/*
数据=新字典
{
{“leage”,“欧足联”},
{“游戏”,“阿尔巴尼亚对科索沃”},
{“分数”,“1:1”}
}
*/
//这一部分他不喜欢,我得到了提到的错误。同样,创建一个新的字典上面描述的工作。
数据=FireBasePushData
}
};
//安全地指向Azure AppSettings
var GoogleFirebasePushKey=ConfigurationManager.AppSettings[“GoogleFirebasePush_SampleAPI”];
var pushService=新的PushNotificationService(GoogleFirebasePushKey);
var responseMessage=wait pushService.PushMessage(requestMessage);
}
}
}
这就是FireBase.NET项目建议如何使用其库的内容:
这是他们的代码:
我做错了什么?感谢您的帮助
提前谢谢你 您是否尝试过按照错误所述操作,并将
字典
强制转换为有效负载
类型
似乎您只需要执行以下操作:
Data = FirebasePushData as Payload // Safe
或
Data = (Payload)FirebasePushData // Unsafe