C# Firesharp:执行请求时出错。路径:0/,方法:PUT
我正在用C#探索Firebase实时数据库(RTDB),并在.NET控制台应用程序上试用Firesharp框架。我已经学习了大多数关于入门的在线教程,但无法将任何数据发布到我的RTDB。我在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
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();
}
Trywait client.SetAsync(“0”,数据)
instead您确定客户端有写入数据库的权限吗?现在默认情况下不授予此类权限。@FrankvanPuffelen我如何检查此权限?这一行Console.WriteLine(“已建立连接!”)代码>打印成功,因此我认为它已连接。我还检查了firebase控制台上的安全规则,并将其设置为public。@samthecodingman也尝试过,但仍然抛出相同的错误。嗯……public read/write应该足够好了。我不确定在这种情况下会出什么问题,因为错误信息相当模糊。是否有任何方法可以查看是否存在嵌套异常?请尝试wait client.SetAsync(“0”,数据)
instead您确定客户端有写入数据库的权限吗?现在默认情况下不授予此类权限。@FrankvanPuffelen我如何检查此权限?这一行Console.WriteLine(“已建立连接!”)代码>打印成功,因此我