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); } }
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)); } }