Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FireBase.NET库的Web API问题_C#_Asp.net Mvc_Firebase - Fatal编程技术网

C# FireBase.NET库的Web API问题

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;

在我基于C#的Web API上,我已经实现了Google FireBase推送,并且已经可以发送带有标题和正文的推送消息,但是当我尝试向其中添加数据负载时,它不接受。错误是:

无法将类型“System.Collections.Generic.Dictionary”隐式转换为“Firebase.NET.Contracts.IPayload”。存在显式转换(是否缺少强制转换?)

这是我的密码

SendFireBasePush.cs:

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