//gets the latest push key from the database
    private void GetLatestKey(int numMod, Action <string> action)
    {
        FirebaseDBFacade.GetTableValueAsync(reference.Child(MyConst.GAMEROOM_ROOM).Child(gameRoomKey).Child(MyConst.GAMEROOM_BATTLE_STATUS), delegate(DataSnapshot dataSnapshot) {
            if (dataSnapshot != null)
            {
                Dictionary <string, System.Object> battleStatus = (Dictionary <string, System.Object>)dataSnapshot.Value;
                switch (numMod)
                {
                case 1:
                    LatestKeyCompute(battleStatus, 1, 1, action);
                    break;

                case 2:
                    LatestKeyCompute(battleStatus, 2, 0, action);
                    break;
                }
            }
        });
    }
    private void CheckInitialPhase()
    {
        FirebaseDBFacade.GetTableValueAsync(reference.Child(MyConst.GAMEROOM_ROOM).Child(gameRoomKey).Child(MyConst.GAMEROOM_BATTLE_STATUS), delegate(DataSnapshot dataSnapshot) {
            if (dataSnapshot.Value == null)
            {
                UpdateBattleStatus(MyConst.BATTLE_STATUS_ANSWER, 0, "0", "0");
            }
            else
            {
                Dictionary <string, System.Object> battleStatus = (Dictionary <string, System.Object>)dataSnapshot.Value;

                foreach (KeyValuePair <string, System.Object> battleKey in battleStatus)
                {
                    battleStatusKey = battleKey.Key;
                }
            }

            FirebaseDBFacade.CreateTableChildAddedListener("BattleStatusChildAdded", reference.Child(MyConst.GAMEROOM_ROOM).Child(gameRoomKey).Child(MyConst.GAMEROOM_BATTLE_STATUS));
            FirebaseDBFacade.CreateTableValueChangedListener("BattleStatusValueChanged", reference.Child(MyConst.GAMEROOM_ROOM).Child(gameRoomKey).Child(MyConst.GAMEROOM_BATTLE_STATUS));
        });
    }