Tuesday, September 13, 2016

bubbafat/FirebaseSharp: A C# client for Firebase.io

bubbafat/FirebaseSharp: A C# client for Firebase.io:

'via Blog this'

Разбираюсь по полной с FireBase. Стоит задача передать данные с 1С, для дальнейшей синхронизации. Первая проблема с которой столкнулся это не возможность через REST API загружать картинки. Нашел решение через c# и google cloud. Теперь возникла проблема в работе c#  и самого firebase, так как гугл пока не сделал клиента, пробую работу альтернативных, один из них FireBaseSharp вроде оказался не плохим, но на 25 000 получил переполнение памяти....



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GoogleCloudSamples;
using System.Net;
using Newtonsoft.Json;
using FirebaseSharp;
using FirebaseSharp.Portable;
using Newtonsoft.Json.Linq;
using FirebaseSharp.Portable.Interfaces;

namespace ConsoleApplication1 {


 class Program {

  static void temp(FirebaseError error) {

  }

  static void Main(string[] args) {
   var projectId = "*********";
   var bucketName = "******.appspot.com";
   using(WebClient webClient = new WebClient()) {
    webClient.UseDefaultCredentials = true;
    webClient.Credentials = new NetworkCredential("*****", "*****", "domen");
    webClient.Encoding = Encoding.UTF8;


    //webClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

    //var jsonGroup = webClient.DownloadString(@"http://localhost/GlobalBase/hs/exchange/AllItemsGroups");
    var jsonItems = webClient.DownloadString(@ "http://localhost/GlobalBase/hs/exchange/AllItems");
    JObject jobject = JObject.Parse(jsonItems);
    // var firebaseConfig = new FirebaseConfig("**********");
    FirebaseApp app = new FirebaseApp(new Uri(@ "https://*****.firebaseio.com/"), "********");

    //var ch = app.Child("Products");
    //ch.Update(jsonGroup);
    var items = app.Child("Products").Child("Items");
    //FirebaseStatusCallback callback = new FirebaseStatusCallback();
    //int x = 0;
    items.On("child_changed", (IDataSnapshot snap, string previousChild, object contex) => {
     Console.WriteLine("update:" + snap.Key);
    });

    items.On("child_added", (IDataSnapshot snap, string previousChild, object contex) => {
     Console.WriteLine("added:" + snap.Key);
    });
    FirebaseStatusCallback callback = new FirebaseStatusCallback(temp);

    foreach(var item in jobject.Values()) {
     int i;
     //Console.WriteLine("{0}", );
     var newChild = items.Child(item.Path);

     newChild.Update(item.ToString());

    }

    //var items = app.Child("Products").Child("Items");
    //items.Update.Update(jsonItems);
   }

   //var json = new WebClient().DownloadString(@"http://srv-iis.rl.int/GlobalBase/hs/exchange/AllItemsGroups");
   //new StorageSample().ListBuckets(projectId);
   //new StorageSample().UploadStream(bucketName);
   //new StorageSample().ListObjects(bucketName);
   Console.WriteLine("Press enter key!");
   Console.ReadLine();
  }

 }
}

No comments:

Post a Comment