Следующий код был выполнен правильно с Firebase версии 4.2 :
public void RetrieveSummary(Action<int[]> onRetrieve) {
Debug.Log("FirebaseStorageService - Retrieving Summary from remote...");
string referencePath = string.Format("users/{0}/sum", GetUserID());
FirebaseDatabase.DefaultInstance.GetReference(referencePath).GetValueAsync().ContinueWith(task => {
if (task.IsCompleted) {
DataSnapshot snapshot = task.Result;
if (snapshot.Exists) {
HammurabiAnalytics.LogCustomEvent("Download_Data_Size", "Summary_User_Data", snapshot.GetRawJsonValue().Length);
Debug.Log("FirebaseStorageService - Raw Remote Summary Data: " + snapshot.GetRawJsonValue());
int[] summaryData = JsonConvert.DeserializeObject<int[]>(snapshot.GetRawJsonValue());
Debug.Log("FirebaseStorageService - Retrieving Summary from remote - DONE");
onRetrieve(summaryData);
} else {
Debug.Log("FirebaseStorageService - User Summary Data is missing!");
onRetrieve(new int[4]);
}
} else {
Debug.LogError("FirebaseStorageService - RetrieveSummary has failed!");
onRetrieve(new int[4]);
}
});
}
Правильно я имею в виду Выполнение ContinueWith , и я смог продолжить процесс с сообщениями журнала и т. Д. После обновления версии Firebase до 5.2.1 я не являюсь возможность продолжить.
Чтобы детализировать проблему, я могу сказать, что блок кода внутри ContinueWith не вызывается, когда нет данных о ссылке. Если я создаю данные по ссылке, поиск работает правильно. Я также не могу добавить фиктивные данные.
Я тоже не мог найти обходной путь, это слишком плохо меня блокирует. Любая идея? Любое решение? Любое решение основной причины?
База огня: 5.2.1, Unity: 2017.2