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);
    }
Example #2
0
    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 }
        });
    }