Firesharp:执行请求时出错.路径 : 0/ , 方法 : 放置.



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

System.AggregateException 已被抛出

"发生了一个或多个错误。(执行请求时出错。路径 : 0/, 方法 : 放置)">

我的实现是这样的:

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>();
}
}

我对 C# 相当陌生。我哪里做错了?

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

编辑

完整的错误日志:

System.AggregateException:"发生一个或多个错误。(错误 在执行请求时发生。路径 : 0 , 方法 : PUT)" ---> System.Exception {FireSharp.Exceptions.FirebaseException}: "An error 在执行请求时发生。路径 : 0 , 方法 : PUT" ---> System.Exception {System.IO.FileNotFoundException}: "无法加载 文件或程序集 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.系统无法 找到指定的文件。">

在 Newtonsoft.Json.Serialization.JsonTypeReflector.get_DynamicCodeGeneration() 在 Newtonsoft.Json.Serialization.JsonTypeReflector.get_ReflectionDelegateFactory() 在 Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator(Type 创建类型) 在 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract 合同) 在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type 对象类型) at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type 对象类型) at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type 类型) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, 对象值, 类型对象类型) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, 对象值, 类型对象类型) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, jsonSerializer jsonSerializer) at FireSharp.RequestManager.PrepareRequest(HttpMethod method, Uri uri, 对象有效负载) 在 FireSharp.RequestManager.RequestAsync(HttpMethod method, String path, QueryBuilder queryBuilder, Object payload)

--- 内部异常堆栈跟踪结束--- FireSharp.RequestManager.RequestAsync(HttpMethod method, String path, QueryBuilder queryBuilder, Object payload) at FireSharp.FirebaseClient.SetAsync[T](String path, T data) at FiresharpTest.Program.AddData() in/Users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:40

--- 内部异常堆栈跟踪结束--- System.Threading.Tasks.Task.Wait(Int32 毫秒超时, 取消令牌取消令牌) 在 System.Threading.Tasks.Task.Wait() at FiresharpTest.Program.Main(String[] args) in/users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:28

好的,所以这个问题的问题是我安装了两个Nuget包,FiresharpFiresharp.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>();
}

最新更新