从C#将数据加载到Firebase

时间:2013-11-16 15:54:22

标签: c# api rest firebase

我正在尝试将数据集加载到Firebase中并且无法连接。我试图从MongoDB导出数据并以这种方式上传,但文件导出本身是200MB,到目前为止我只运行了一半的记录。

我目前正在使用一个简单的C#程序从XML文件中提取数据,该程序既可以保存为JSON文件,也可以将记录推送到我的本地MongoDB实例。我尝试实现第三种方法,使用REST API和RestSharp将记录推送到Firebase。我正在使用以下代码来尝试完成此任务。

var client = new RestClient("https://dailymed-rx-data.firebaseio.com/");
                var request = new RestRequest("", Method.PUT);
                request.RequestFormat = DataFormat.Json;
                request.AddBody(model);
                IRestResponse response = client.Execute(request);
                Console.Write(response.StatusCode.ToString());

每次客户端尝试执行时,我都会获得Forbidden的状态代码。我没有在Firebase REST API中看到有关身份验证的任何内容,但它正在点击https。看起来我应该进行身份验证,但我不知道如何在RestSharp和Firebase之间进行设置。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我可以在您的请求中看到的第一件事是您需要在URL的末尾包含 .json (我假设您没有更改Firebase读取/写安全规则)。

所以在你的情况下它应该是

var client = new RestClient("https://dailymed-rx-data.firebaseio.com/.json");

修复后,您还需要提供有效的JSON值,因为(我发现的)除了正确的名称对之外的任何东西都不起作用

有关可行的C#代码示例,请参阅此帖子C# example of using Firebase REST API

顺便说一句,小心做PUT,因为你基本上用你提交的内容替换当前对象(我第一次玩Firebase时遇到了这个问题(参见Using Firebase to sync data with a webpage (via Javascript, REST and Firebase Admin panel))。在大多数情况下,我认为你想使用POST。

虽然我的其他一些Firebase帖子与Eclipse和Groovy相关,但我确实涵盖了Firebase安全策略等主题,并创建了使用Firebase的AngularJS应用,因此请查看:http://blog.diniscruz.com/search/label/Firebase