C# Firesharp:执行请求时出错。路径:0/,方法:PUT

C# Firesharp:执行请求时出错。路径:0/,方法:PUT,c#,firebase,firebase-realtime-database,fire-sharp,C#,Firebase,Firebase Realtime Database,Fire Sharp,我正在用C#探索Firebase实时数据库(RTDB),并在.NET控制台应用程序上试用Firesharp框架。我已经学习了大多数关于入门的在线教程,但无法将任何数据发布到我的RTDB。我在AddData().Wait()处被抛出此错误: 已引发System.AggregateException 出现一个或多个错误。(执行请求时出错。路径:0/,方法:PUT) 我的实现是这样的: class Program { static IFirebaseConfig config = new Fi

我正在用C#探索Firebase实时数据库(RTDB),并在.NET控制台应用程序上试用Firesharp框架。我已经学习了大多数关于入门的在线教程,但无法将任何数据发布到我的RTDB。我在
AddData().Wait()
处被抛出此错误:

已引发System.AggregateException

出现一个或多个错误。(执行请求时出错。路径:0/,方法:PUT)

我的实现是这样的:

class Program
{
    static IFirebaseConfig config = new FirebaseConfig
    {
        AuthSecret="MY_AUTH_SECRET",
        BasePath="https://MY_APP.firebaseio.com/"
    };

    static IFirebaseClient client;

    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
        client = new FireSharp.FirebaseClient(config);

        if (client != null)
        {
            Console.WriteLine("Connection established!");
            AddData().Wait(); //Crashed here with above error
        }
    }

    public static async Task AddData() 
    {
        var data = new Data
        {
            id = "Hello",
            text = "World"
        };

        SetResponse response = await client.SetAsync("0/", data);
        Data result = response.ResultAs<Data>();
    }
}
类程序
{
静态IFirebaseConfig配置=新FirebaseConfig
{
AuthSecret=“MY\u AUTH\u SECRET”,
基本路径=”https://MY_APP.firebaseio.com/"
};
静态安全客户端;
静态void Main(字符串[]参数)
{
控制台。WriteLine(“你好,世界!”);
client=new FireSharp.FirebaseClient(配置);
如果(客户端!=null)
{
Console.WriteLine(“已建立连接!”);
AddData().Wait();//由于上述错误而在此处崩溃
}
}
公共静态异步任务AddData()
{
var数据=新数据
{
id=“你好”,
text=“世界”
};
SetResponse=wait client.SetAsync(“0/”,数据);
数据结果=response.ResultAs();
}
}
我对C#还相当陌生。我哪里出错了

我在Mac上使用VS,因此没有编写表单应用程序进行测试

编辑 完整错误日志:

System.AggregateException:“发生了一个或多个错误。(错误) 执行请求时发生。路径:0,方法:PUT)“--> System.Exception{FireSharp.Exceptions.FirebaseException}:“一个错误 执行请求时发生。路径:0,方法:PUT“---> System.Exception{System.IO.FileNotFoundException}:“无法加载 文件或程序集'System.Security.Permissions,版本=0.0.0.0, 区域性=中性,PublicKeyToken=CC7B13FFCD2DD51'。系统无法 找到指定的文件。\n“

至少 Newtonsoft.Json.Serialization.jsontyperelector.get\u dynamicCodegrade()\n 在 Newtonsoft.Json.Serialization.jsontyperelector.get\u reflectionlegatefactory()\n 在 Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator(类型 createdType)\n位于 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContact(JsonContract 合同)\n在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(类型 objectType)\n位于 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(类型 objectType)\n位于 Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(类型 类型)\n在 Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serializate(JsonWriter jsonWriter,对象值,类型objectType)\n位于 Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter,对象值,类型objectType)\n位于 Newtonsoft.Json.JsonConvert.SerializeObjectInternal(对象值,类型 类型,JsonSerializer JsonSerializer)\n位于 FireSharp.RequestManager.PrepareRequest(HttpMethod方法,Uri, 对象负载)\n位于 FireSharp.RequestManager.RequestAsync(HttpMethod方法,字符串路径, QueryBuilder(查询生成器,对象有效负载)

---内部异常堆栈跟踪的结束---at FireSharp.RequestManager.RequestAsync(HttpMethod方法,字符串路径, QueryBuilder QueryBuilder,对象负载)\n位于 FireSharp.FirebaseClient.SetAsync[T](字符串路径,T数据)\n位于 中的FiresharpTest.Program.AddData() /Users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:40

---内部异常堆栈跟踪的结束---at System.Threading.Tasks.Task.Wait(Int32毫秒, CancellationToken CancellationToken)\n位于 System.Threading.Tasks.Task.Wait()\n位于 中的FiresharpTest.Program.Main(字符串[]args) /Users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:28


好的,这个问题的问题是我安装了两个Nuget软件包,
Firesharp
Firesharp.Serialization.JsonNet

我删除了
Firesharp
,然后对我的
AddData()
函数进行了修改,所有这些都起到了作用

public static async Task AddData() 
{
    var data = new Data
    {
        id = "Hello",
        text = "World"
    };

    SetResponse response = await client.SetTaskAsync("0", data); //Change to SetTaskAsync here
    Data result = response.ResultAs<Data>();
}
公共静态异步任务AddData()
{
var数据=新数据
{
id=“你好”,
text=“世界”
};
SetResponse response=await client.SetTaskAsync(“0”,数据);//此处更改为SetTaskAsync
数据结果=response.ResultAs();
}

好的,所以这个问题的问题是我安装了两个Nuget软件包,
Firesharp
Firesharp.Serialization.JsonNet

我删除了
Firesharp
,然后对我的
AddData()
函数进行了修改,所有这些都起到了作用

public static async Task AddData() 
{
    var data = new Data
    {
        id = "Hello",
        text = "World"
    };

    SetResponse response = await client.SetTaskAsync("0", data); //Change to SetTaskAsync here
    Data result = response.ResultAs<Data>();
}
公共静态异步任务AddData()
{
var数据=新数据
{
id=“你好”,
text=“世界”
};
SetResponse response=await client.SetTaskAsync(“0”,数据);//此处更改为SetTaskAsync
数据结果=response.ResultAs();
}

Try
wait client.SetAsync(“0”,数据)
instead您确定客户端有写入数据库的权限吗?现在默认情况下不授予此类权限。@FrankvanPuffelen我如何检查此权限?这一行
Console.WriteLine(“已建立连接!”)打印成功,因此我认为它已连接。我还检查了firebase控制台上的安全规则,并将其设置为public。@samthecodingman也尝试过,但仍然抛出相同的错误。嗯……public read/write应该足够好了。我不确定在这种情况下会出什么问题,因为错误信息相当模糊。是否有任何方法可以查看是否存在嵌套异常?请尝试
wait client.SetAsync(“0”,数据)
instead您确定客户端有写入数据库的权限吗?现在默认情况下不授予此类权限。@FrankvanPuffelen我如何检查此权限?这一行
Console.WriteLine(“已建立连接!”)打印成功,因此我