示例#1
0
        public void PushPushes()
        {
            using (FirebaseApp app = AppFactory.Empty())
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var           list = app.Child("message_list");
                List <string> ids  = new List <string>();

                ids.Add(list.Push("{'name':'Post 1'}").Key);
                ids.Add(list.Push("{'name':'Post 2'}").Key);
                ids.Add(list.Push("{'name':'Post 3'}").Key);

                list.Once("value", (snap, child, context) =>
                {
                    var children = snap.Children.ToList();
                    Assert.AreEqual(ids[0], children[0].Key);
                    Assert.AreEqual(ids[1], children[1].Key);
                    Assert.AreEqual(ids[2], children[2].Key);

                    Assert.AreEqual("Post 1", children[0]["name"].Value());
                    Assert.AreEqual("Post 2", children[1]["name"].Value());
                    Assert.AreEqual("Post 3", children[2]["name"].Value());

                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(15)), "callback never fired");
            }
        }
示例#2
0
        public void PushEmptyCreatesChild()
        {
            using (FirebaseApp app = AppFactory.Empty())
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var           list = app.Child("message_list");
                List <string> ids  = new List <string>();

                for (int i = 1; i < 4; i++)
                {
                    var pushRef = list.Push();
                    ids.Add(pushRef.Key);
                    pushRef.Set(string.Format("{{'name':'Post {0}'}}", i));
                }

                list.Once("value", (snap, child, context) =>
                {
                    var children = snap.Children.ToList();
                    Assert.AreEqual(ids[0], children[0].Key);
                    Assert.AreEqual(ids[1], children[1].Key);
                    Assert.AreEqual(ids[2], children[2].Key);

                    Assert.AreEqual("Post 1", children[0]["name"].Value());
                    Assert.AreEqual("Post 2", children[1]["name"].Value());
                    Assert.AreEqual("Post 3", children[2]["name"].Value());

                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(15)), "callback never fired");
            }
        }
示例#3
0
        public void OrderedDinos()
        {
            using (FirebaseApp app = AppFactory.Dinosaurs())
            {
                const int expected = 6;
                int       current  = 0;

                string previousKey = null;

                ManualResetEvent fired = new ManualResetEvent(false);
                var query = app.Child("/dinosaurs")
                            .OrderByKey()
                            .On("child_added", (snap, previous, context) =>
                {
                    Debug.WriteLine(snap.Value());

                    Assert.IsNotNull(snap.Key);

                    if (previousKey != null)
                    {
                        Assert.IsTrue(String.Compare(previousKey, snap.Key, StringComparison.Ordinal) < 0);
                    }

                    previousKey = snap.Key;

                    if (++current == expected)
                    {
                        fired.Set();
                    }
                });

                Assert.IsTrue(fired.WaitOne(TimeSpan.FromSeconds(5)),
                              string.Format("callback did not fire enough times: {0}", current));
            }
        }
示例#4
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.name == "ground")
        {
            GameControl gc = new GameControl();

            mref = FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://flappybird-aa5a0.firebaseio.com/");

            mref.Child("name").setValue("asdsadsadasdsasa");
            //User user = new User(gc.newUser.DisplayName,50);
            //string json = JsonUtility.ToJson(user);
            //DatabaseReference dbRef = FirebaseDatabase.DefaultInstance.RootReference;

            //dbRef.Child("name").SetValueAsync("asdddddddd");
            gameOver.enabled = true;
            restart.enabled  = true;
            stop();
        }

        if (coll.gameObject.tag == "obstacles")
        {
            gameOver.enabled = true;
            restart.enabled  = true;
            stop();
        }
    }
示例#5
0
        public void OrderedScores()
        {
            using (FirebaseApp app = AppFactory.Dinosaurs())
            {
                int previousScore = int.MinValue;
                int expect        = 6;
                int index         = 0;

                ManualResetEvent fired = new ManualResetEvent(false);
                var query = app.Child("/scores")
                            .OrderByValue()
                            .On("child_added", (snap, previous, context) =>
                {
                    int current = snap.Value <int>();
                    Assert.IsTrue(previousScore < current, "items are out of order");
                    previousScore = current;


                    if (++index == expect)
                    {
                        fired.Set();
                    }
                });

                Assert.IsTrue(fired.WaitOne(TimeSpan.FromSeconds(5)), "callback did not fire");
            }
        }
示例#6
0
        private void RunTest(string json, string testName, string[] expectedOrder)
        {
            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent fired = new ManualResetEvent(false);
                var query = app.Child("/")
                            .OrderByChild(testName)
                            .On("value", (snap, previous, context) =>
                {
                    Assert.IsNotNull(snap.Children, testName);
                    var children = snap.Children.ToList();

                    Assert.AreEqual(expectedOrder.Length, children.Count, testName);

                    for (int i = 0; i < expectedOrder.Length; i++)
                    {
                        Assert.AreEqual(expectedOrder[i], children[i].Key, testName);
                    }

                    fired.Set();
                });

                Assert.IsTrue(fired.WaitOne(TimeSpan.FromSeconds(5)), "callback did not fire during " + testName);
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack) // 첫번째 호출에만 선언
     {
         FirebaseApp app       = new FirebaseApp(new Uri("https://pipi-39a83.firebaseio.com/") /*, <auth token> */);
         var         scoresRef = app.Child("LogList");
         scoresRef.OrderByKey().On("value", (snapshot, child, context) =>
         {
             x.Clear();
             y.Clear();
             y2.Clear();
             foreach (var date in snapshot.Children)
             {
                 Debug.WriteLine("key is {0} ", date.Key);
                 foreach (var time in date.Children)
                 {
                     Debug.WriteLine("key is {0} ", time.Key);
                     //시간 값을 저장해야함. 이건 x값임.
                     var Xtime = time.Key;
                     x.Add(Xtime);
                     foreach (var item in time.Children)
                     {
                         Debug.WriteLine(item.Value(), "아이템의 값");
                         if (item.Key == "Humidity")
                         {
                             var humid = item.Value();
                             y2.Add(Int32.Parse(humid));
                         }
                         else if (item.Key == "Light status")
                         {
                             var light = item.Value();
                         }
                         else if (item.Key == "Temp")
                         {
                             var temp = item.Value();
                             y.Add(Int32.Parse(temp));
                         }
                     }
                 }
             }
             Global.ChartX  = x;
             Global.ChartY  = y;
             Global.ChartY2 = y2;
         });
     }
     else
     {
         if (Global.ChartX == null || Global.ChartY == null || Global.ChartY2 == null)
         {
             Debug.WriteLine("global 변수가 비어있음");
             return;
         }
         Chart1.Series[0].Points.DataBindXY(Global.ChartX, Global.ChartY);
         Chart1.Series[1].Points.DataBindXY(Global.ChartX, Global.ChartY2);
     }
 }
示例#8
0
        public void ChildPathTests()
        {
            string json = @"
{
    'foo': {
        'bar': {
            'baz': {
            }
        }
    }
}
";

            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var query = app.Child("foo/bar/baz");
                query.On("value", (snap, child, context) =>
                {
                    Assert.AreEqual("baz", snap.Key);
                    Assert.AreEqual("baz", snap.Ref().Key);

                    // new ref should be at
                    // http://<app root>/foo/bar/baz
                    Assert.AreEqual(
                        string.Format("{0}{1}", app.RootUri, "foo/bar/baz"),
                        snap.Ref().AbsoluteUri.ToString());

                    var pipo = snap.Child("pipo");

                    Assert.AreEqual("pipo", pipo.Key);
                    Assert.AreEqual("pipo", pipo.Ref().Key);

                    Assert.AreEqual(
                        string.Format("{0}{1}", app.RootUri, "foo/bar/baz/pipo"),
                        pipo.Ref().AbsoluteUri.ToString());

                    var bar3 = pipo.Child("bar1/bar2/bar3");

                    Assert.AreEqual("bar3", bar3.Key);
                    Assert.AreEqual("bar3", bar3.Ref().Key);

                    Assert.AreEqual(
                        string.Format("{0}{1}", app.RootUri, "foo/bar/baz/pipo/bar1/bar2/bar3"),
                        bar3.Ref().AbsoluteUri.ToString());


                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(5)), "The callback never fired");
            }
        }
示例#9
0
        public Form1()
        {
            InitializeComponent();
            lcEndtime  = new DateTime();
            lcStartime = new DateTime();
            DateTime timeset = new DateTime();

            port.Open();
            FirebaseApp app       = new FirebaseApp(new Uri("https://shockmeplease-7ebf5.firebaseio.com/"));
            var         scoresRef = app.Child("Test");

            scoresRef.OrderByValue()
            .On("value", (snapshot, child, context) => {
                var test2 = snapshot.Value();
                var time  = JsonConvert.DeserializeObject <DateFirebase>(snapshot.Value());
                //DateTime Starttime = Convert.ToDateTime(Convert.ToDouble( time.start));
                //DateTime Endtime = Convert.ToDateTime(Convert.ToDouble(time.start));
                DateTime Starttime = DateTime.ParseExact(time.start, "MM/dd/yyyy HH:mm ",
                                                         System.Globalization.CultureInfo.InvariantCulture);
                DateTime Endtime = DateTime.ParseExact(time.end, "MM/dd/yyyy HH:mm ",
                                                       System.Globalization.CultureInfo.InvariantCulture);
                DateTime currenttime = DateTime.Now;
                if (Starttime > currenttime && timeset == Starttime && timeset == Endtime)
                {
                    shutdown(0);
                }
                else if (Endtime < currenttime && timeset == Starttime && timeset == Endtime)
                {
                    shutdown(0);
                }
                lcStartime = Starttime;
                lcEndtime  = Endtime;
            });
            Task.Run(() => {
                while (true)
                {
                    if (DateTime.Now < lcStartime && timeset != lcStartime)
                    {
                        SendData("pm");
                        shutdown(300);
                        break;
                    }
                    else if (DateTime.Now > lcEndtime && timeset != lcEndtime)
                    {
                        SendData("pm");
                        shutdown(300);
                        break;
                    }
                    Task.Delay(2000);
                }
            });
        }
示例#10
0
        public void OrderByPriorityMixed()
        {
            string json = @"
{  
    'users':{  
        'aaa':{  
            '.priority': 5,
            'name':'AAA'
        },
        'bbb':{  
            '.priority': 'qbert',
            'name':'BBB'
        },
        'ccc':{  
            '.priority': 'zzyzx',
            'name':'CCC'
        },
        'ddd':{  
            'name':'DDD'
        },
        'eee':{  
            '.priority': '3',
            'name':'EEE'
        },
    }
}
";

            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var root  = app.Child("users");
                var query = root.OrderByPriority().Once("value", (snap, child, context) =>
                {
                    var list = snap.Children.ToList();
                    Assert.AreEqual("ddd", list[0].Key);
                    Assert.AreEqual("eee", list[1].Key);
                    Assert.AreEqual("aaa", list[2].Key);
                    Assert.AreEqual("bbb", list[3].Key);
                    Assert.AreEqual("ccc", list[4].Key);

                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(10)), "callback did not fire");
            }
        }
示例#11
0
        private void Form1_Load(object sender, EventArgs e)
        {
            _app.Child("chicago/hourly/data")
            .On("value", (snap, child, context) => { chart1.BeginInvoke(new UpdateDelegate(UpdateChart), snap); });

            chart1.Series.Clear();
            var series1 = new System.Windows.Forms.DataVisualization.Charting.Series
            {
                Name              = "Weather",
                Color             = System.Drawing.Color.Green,
                IsVisibleInLegend = false,
                IsXValueIndexed   = true,
                ChartType         = SeriesChartType.Line,
            };

            this.chart1.Series.Add(series1);
        }
示例#12
0
        private static void Main(string[] args)
        {
            var app = new FirebaseApp(new Uri("https://dazzling-fire-1575.firebaseio.com/"),
                                      "T7dtZlSSDnGFZkPVWGq9chNPZ6dJQyt4bQNl4udN");

            JobQueue <Job> queue = new JobQueue <Job>(app.Child("jobs/job"), job =>
            {
                Console.WriteLine("[{0}]: {1}", job.Priority, job.Description);
                return(true);
            });

            var    feederStart = new ParameterizedThreadStart(Feeder);
            Thread feeder      = new Thread(feederStart);

            feeder.Start(queue);

            Console.ReadLine();
        }
示例#13
0
        public static void UpsertUser(string strUid, string strNome, string strEmail)
        {
            // https://github.com/bubbafat/FirebaseSharp

            using (FirebaseApp app = new FirebaseApp(new Uri("https://ultratrader-210414.firebaseio.com/"), Preferences.Get("Token", "")))
            {
                app.Child("usuarios").Child(strUid).Set(JsonConvert.SerializeObject(new Usuario
                {
                    Uid         = strUid,
                    Nome        = strNome,
                    Email       = strEmail,
                    IsAdmin     = true,
                    IsPro       = false,
                    Senha       = "essanõavai",
                    DtLastLogin = DateTime.Now
                }), new FirebaseSharp.Portable.Interfaces.FirebaseStatusCallback((erro) =>
                {
                    Util.ExibeMensagem(erro.Code);
                }));
            }
        }
示例#14
0
        public void ChildrenValues()
        {
            string json = @"
{
  'messages': {
    '-JqpIO567aKezufthrn8': {
      'uid': 'barney',
      'text': 'Welcome to Bedrock City!'
    },
      '-JqpIP5tIy-gMbdTmIg7': {
      'uid': 'fred',
      'text': 'Yabba dabba doo!'
    }
  }
}

";

            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var query = app.Child("messages");
                query.Once("value", (snap, child, context) =>
                {
                    var ca = snap.Children.ToArray();
                    Assert.AreEqual("-JqpIO567aKezufthrn8", ca[0].Key);
                    Assert.AreEqual("barney", ca[0].Child("uid").Value());
                    Assert.AreEqual("Welcome to Bedrock City!", ca[0].Child("text").Value());

                    Assert.AreEqual("-JqpIP5tIy-gMbdTmIg7", ca[1].Key);
                    Assert.AreEqual("fred", ca[1].Child("uid").Value());
                    Assert.AreEqual("Yabba dabba doo!", ca[1].Child("text").Value());

                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(5)), "callback never fired");
            }
        }
示例#15
0
        public void OrderByPriorityStringNumerics()
        {
            string json = @"
{  
    'users':{  
        'gracehop':{  
            '.priority': '1',
            'name':'Grace Hopper'
        },
        'physicsmarie':{  
            '.priority': 2,
            'name':'Marie Curie'
        },
        'adalovelave':{  
            '.priority': '3',
            'name':'Ada Lovelace'
        },
    }
}
";

            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent done = new ManualResetEvent(false);

                var root  = app.Child("users");
                var query = root.OrderByPriority().Once("value", (snap, child, context) =>
                {
                    var list = snap.Children.ToList();
                    Assert.AreEqual("gracehop", list[0].Key);
                    Assert.AreEqual("physicsmarie", list[1].Key);
                    Assert.AreEqual("adalovelave", list[2].Key);

                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(10)), "callback did not fire");
            }
        }
示例#16
0
        public void OrderedAndLimited()
        {
            using (FirebaseApp app = AppFactory.Dinosaurs())
            {
                List <Tuple <string, int> > expected = new List <Tuple <string, int> >
                {
                    new Tuple <string, int>("bruhathkayosaurus", 55),
                    new Tuple <string, int>("linhenykus", 80),
                    new Tuple <string, int>("pterodactyl", 93),
                };

                List <Tuple <string, int> > actual = new List <Tuple <string, int> >();

                ManualResetEvent loaded = new ManualResetEvent(false);

                var fbRef = app.Child("/scores")
                            .OrderByValue()
                            .LimitToLast(expected.Count)
                            .On("value", (snap, childPath, context) =>
                {
                    Assert.IsTrue(snap.HasChildren);
                    Assert.AreEqual(expected.Count, snap.NumChildren);
                    actual.AddRange(
                        snap.Children.Select(child => new Tuple <string, int>(child.Key, child.Value <int>())));
                    loaded.Set();
                });

                Assert.IsTrue(loaded.WaitOne(TimeSpan.FromSeconds(5)), "Failed to load snapshot");

                Assert.AreEqual(expected.Count, actual.Count);

                for (int i = 0; i < expected.Count; i++)
                {
                    Assert.AreEqual(expected[i].Item1, actual[i].Item1);
                    Assert.AreEqual(expected[i].Item2, actual[i].Item2);
                }
            }
        }
示例#17
0
        public void Basic()
        {
            string json = @"
{
    aaa: {
        test: 1
    },
    bbb: {
        test: '1'
    },
    ccc: {
        test: 3
    },
    ddd: {
    },
    eee: {
        test: {
            other: 'value'
        }
    },
    fff: 'value'
}
";

            using (FirebaseApp app = AppFactory.FromJson(json))
            {
                ManualResetEvent done = new ManualResetEvent(false);

                app.Child("/").OrderByChild("test").EqualTo(3).Once("value", (snap, child, context) =>
                {
                    Assert.AreEqual(1, snap.NumChildren);
                    Assert.AreEqual("ccc", snap.Children.First().Key);
                    done.Set();
                });

                Assert.IsTrue(done.WaitOne(TimeSpan.FromSeconds(5)));
            }
        }
示例#18
0
        public void TakesTwoDinosaurs()
        {
            using (FirebaseApp app = AppFactory.Dinosaurs())
            {
                int limit   = 2;
                int current = 0;

                ManualResetEvent fired = new ManualResetEvent(false);
                var query = app.Child("/dinosaurs")
                            .LimitToFirst(limit)
                            .On("child_added", (snap, previous, context) =>
                {
                    Debug.WriteLine(snap.Value());
                    if (++current == limit)
                    {
                        fired.Set();
                    }
                });

                Assert.IsTrue(fired.WaitOne(TimeSpan.FromSeconds(5)),
                              string.Format("callback did not fire enough times: {0}", current));
            }
        }
示例#19
0
 private void Grid_Loaded(object sender, RoutedEventArgs e)
 {
     var scoresRef = _app.Child("dataSample")                                   //Your data start node name
                     .On("value",
                         (snap, previous_child, context) => AddOrUpdate(snap)); //Subscribe to changing data in Firebase
 }
示例#20
0
 // wait to start the background worker until the canvas is loaded
 private void PaintCanvas_OnLoaded(object sender, RoutedEventArgs e)
 {
     _app.Child("/").On("child_added", (snap, previous_child, context) => AddOrUpdate(snap));
     _app.Child("/").On("child_changed", (snap, previous_child, context) => AddOrUpdate(snap));
     _app.Child("/").On("child_removed", (snap, previous_child, context) => Removed(snap));
 }
示例#21
0
        public FirebaseLogger(IConfigProvider configProvider)
        {
            var firebaseApp = new FirebaseApp(new Uri("https://rigcontrol-23592.firebaseio.com/"), configProvider.FirebaseKey);

            Root = firebaseApp.Child("Rigs").Child(Environment.MachineName);
        }
示例#22
0
 public string SendMessage(ChatMessage message)
 {
     return(_app.Child($"/{KeyMessages}").Push(message).Key);
 }