public async Task <GameRewardsData> GetGameRewardsData() { if (DatosFirebaseRTHelper.Instance.isInit == false) { return(null); } DataSnapshot dtSnapshot = null; DatosFirebaseRTHelper.Instance.reference.Child(DatosFirebaseRTHelper.Instance.GameRewardsTable).KeepSynced(true); await DatosFirebaseRTHelper.Instance.reference.Child(DatosFirebaseRTHelper.Instance.GameRewardsTable).GetValueAsync().ContinueWith(task => { if (task.IsFaulted) { //Debug.Log("NoChild"); // Handle the error... } else if (task.IsCompleted) { dtSnapshot = task.Result; } }); GameRewardsData gameRewardData = new GameRewardsData(); if (dtSnapshot != null) { if (dtSnapshot.Exists) { gameRewardData = JsonUtility.FromJson <GameRewardsData>(dtSnapshot.GetRawJsonValue()); } } return(gameRewardData); }
public async void SetGoldAfterWiningAMatch(UserDB pUserDB) { if (DatosFirebaseRTHelper.Instance.isInit == false) { return; } int goldAmount = await GetUserGoldAmount(pUserDB); FbRewardsData rewData = new FbRewardsData(); GameRewardsData gameRewards = await rewData.GetGameRewardsData(); int goldAfterMatch = gameRewards.GoldWinMatch; goldAmount += goldAfterMatch; await DatosFirebaseRTHelper.Instance.reference.Child(DatosFirebaseRTHelper.Instance.UsersResourcesTable) .Child(pUserDB.Name.ToLower()) .Child(resources) .UpdateChildrenAsync(new Dictionary <string, object> { { gold, goldAmount } }); }