public object Observe <T>(FirebaseEventDelegate <T> handler)
        {
            var rootNode = databaseReference;

            return((uint)rootNode.ObserveEvent(DataEventType.Value, (snapshot) =>
            {
                if (snapshot.Exists)
                {
                    //FirebaseXamarinHelper.RunOnUIThread(() =>
                    //{
                    var data = snapshot.GetValue();
                    var snapData = DataConverter.Convert <T>(data, GetObjectFromHandler(handler));
                    SetObjectFromHandler(handler, snapData);
                    handler.OnSnapshot(snapData);
                    //});
                }
                else
                {
                    handler.OnSnapshot(default(T));
                    handler?.OnError?.Invoke(new SnapshotNotFoundException());
                }
            }, (error) =>
            {
                handler?.OnError?.Invoke(new FirebaseException(error));
            }));
        }
 public void OnDataChange(DataSnapshot snapshot)
 {
     if (snapshot.Exists())
     {
         var jsonObject = new Org.Json.JSONObject();
         var val        = snapshot.GetValue(jsonObject.Class);
         if (val is JavaDictionary map)
         {
             eventDelegate.OnSnapshot(map.ToString());
         }
         else
         {
             eventDelegate.OnSnapshot(val.ToString());
         }
     }
     else
     {
         eventDelegate.OnSnapshot(null);
     }
 }
Example #3
0
 public void OnDataChange(DataSnapshot snapshot)
 {
     if (snapshot.Exists())
     {
         //FirebaseXamarinHelper.RunOnUIThread(() =>
         //{
         try
         {
             var snapData = DataConverter.Convert <T>(snapshot.Value, GetObjectFromHandler(eventDelegate));
             eventDelegate.OnSnapshot(snapData);
             SetObjectFromHandler(eventDelegate, snapData);
         }
         catch (System.Exception ex)
         {
             var i = ex;
         }
     }
     else
     {
         eventDelegate.OnSnapshot(default(T));
     }
 }