public IEnumerator DoGetData_Single_Coroutine <T>(string strKey, OnFinish_FirebaseDB_GetValue_Single <T> OnFinishGetData) where T : IFirebaseData { var pTask = DoGetData_Single <T>(strKey, OnFinishGetData); while (pTask.IsCompleted == false) { yield return(null); } }
public Task DoGetData_Single(System.Type pType, string strKey, OnFinish_FirebaseDB_GetValue_Single OnFinishGetData) { string strRootNodeName = GetRootNodeName(pType); return(FirebaseDatabase.DefaultInstance.RootReference.Child(strRootNodeName). Child(strKey). GetValueAsync(). ContinueWith(task => { string strJsonResult = task.Result.GetRawJsonValue(); if (task.IsFaulted || string.IsNullOrEmpty(strJsonResult)) { OnFinishGetData?.Invoke(false, strJsonResult); } else if (task.IsCompleted) { OnFinishGetData?.Invoke(true, strJsonResult); } })); }
public Task DoGetData_Single <T>(string strKey, OnFinish_FirebaseDB_GetValue_Single <T> OnFinishGetData) where T : IFirebaseData { string strRootNodeName = GetRootNodeName(typeof(T)); return(FirebaseDatabase.DefaultInstance.RootReference.Child(strRootNodeName). Child(strKey). GetValueAsync(). ContinueWith(task => { string strJsonResult = task.Result.GetRawJsonValue(); if (task.IsFaulted || string.IsNullOrEmpty(strJsonResult)) { OnFinishGetData?.Invoke(false, strJsonResult, default(T)); } else if (task.IsCompleted) { T pData = JsonConvert.DeserializeObject <T>(strJsonResult); pData.IFirebaseData_strDBKey = strKey; OnFinishGetData?.Invoke(true, strJsonResult, pData); } })); }