我正在使用 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>();
}
}
我对 C# 相当陌生。我哪里出错了?
我在 Mac 上使用 VS,因此没有编写表单应用程序来测试。
编辑
完整的错误日志:
System.AggregateException:“发生一个或多个错误。(执行请求时发生错误。路径:0,方法:PUT)”---> System.Exception {FireSharp.Exceptions.FirebaseException}:“执行请求时发生错误. 路径 : 0 , 方法 : PUT" ---> System.Exception {System.IO.FileNotFoundException}: "无法加载文件或程序集 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken= cc7b13ffcd2ddd51'。系统找不到指定的文件。\n"
在 Newtonsoft.Json.Serialization.JsonTypeReflector.get_DynamicCodeGeneration()\n 在 Newtonsoft.Json.Serialization.JsonTypeReflector.get_ReflectionDelegateFactory()\n 在 Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator(Type createdType)\n 在 Newtonsoft.Json。 Serialization.DefaultContractResolver.InitializeContract(JsonContract contract)\n 在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType)\n 在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType)\n 在 Newtonsoft.Json.Serialization。 DefaultContractResolver.ResolveContract(Type type)\n 在 Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)\n 在 Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter,对象值,类型 objectType)\n 在 Newtonsoft.Json.JsonConvert.SerializeObjectInternal(对象值,类型类型,JsonSerializer jsonSerializer)\n 在 FireSharp.RequestManager.PrepareRequest(HttpMethod 方法,Uri uri,对象负载)\n 在 FireSharp.RequestManager .RequestAsync(HttpMethod 方法,字符串路径,QueryBuilder queryBuilder,对象负载)
--- 内部异常堆栈跟踪结束 --- 在 FireSharp.RequestManager.RequestAsync(HttpMethod 方法,字符串路径,QueryBuilder queryBuilder,对象负载)\n 在 FireSharp.FirebaseClient.SetAsync[T](字符串路径,T 数据)\ n 在 /Users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:40 中的 FiresharpTest.Program.AddData()
--- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.Wait(Int32 毫秒超时,CancellationToken cancelToken)\n 在 System.Threading.Tasks.Task.Wait()\n 在 FiresharpTest.Program。 /Users/MYNAME/Desktop/C#Projects/FiresharpTest/FiresharpTest/Program.cs:28 中的 Main(String[] args)