我有一个奇怪的问题。当用户在我的应用程序中创建游戏时,其帐户中的某些信息会存储到游戏节点中,以便可以使用。一切工作正常,除了我有一个出于某种原因未传递到数据库中的布尔值。我在数据库中有一些布尔值可以很好地传递,但是由于某种原因,其中一个不会,而且我也不知道为什么。
这是我在创建游戏时使用的User构造函数:
public User(String userName, int score, String HorT, String uid, String gameId, int position, boolean ready, boolean inGame) {
this.uid = uid;
this.userName = userName;
this.score = score;
this.HorT = HorT;
this.gameId = gameId;
this.ready = ready;
this.position = position;
this.inGame = inGame;
}
然后是正在创建并添加到游戏中的用户对象:
final User user1 = new User(userName, 0, getSide(), FirebaseAuth.getInstance().getUid(), gameID, 1,false, false);
FCLobbyMaker gameMaker = new FCLobbyMaker(user1, null, wager, gameID, false, false);
这是我的数据库的样子:
我真的很困惑,为什么不将inGame
布尔值传递到数据库中,而将其他布尔值(如ready
)传递给数据库。有谁知道我能做些什么来解决这个问题?
我通过将false
作为该行中的最后一个变量(创建用户)传递到数据库中
final User user1 = new User(userName, 0, getSide(), FirebaseAuth.getInstance().getUid(), gameID, 1,false, false);
然后我通过在该GameMaker行中传递user1
将用户添加到游戏中
FCLobbyMaker gameMaker = new FCLobbyMaker(user1, null, wager, gameID, false, false);
最后,我使用这一行将整个gameMaker添加到数据库中
FCGames.child(gameID).setValue(gameMaker);
您会看到它工作正常,因为在我显示的数据库图片中,user1是游戏中的节点之一,它具有我在user1
中传递的所有变量,除了{{1 }}布尔值