使用Firebase聆听传入价值

时间:2017-01-22 02:36:34

标签: ios swift firebase firebase-realtime-database

我正在使用firebase管理我的游戏服务器。游戏需要两端用户的输入。

该应用程序允许玩家玩一个小游戏,其中任一玩家选择随机卡,然后服务器比较两者。但是,当一个玩家在另一个玩家之前选择一张牌时,我需要该应用程序等到收到该值。所以,我需要应用程序“等待”,直到输入一个值,然后应用程序将继续。这样我可以比较任何一个值(玩家1的值和玩家2的值)

这就是我现在正在尝试的方式:

@IBAction func aceOfClubs(_ sender: Any) {
    cardSelected(imageString: "aceOfClubs", cardValue: aceOfClubsValue)
}

当玩家按下按钮时,它会运行此功能:

private func cardSelected(imageString: String, cardValue: Int) {
    print("card selected")

    self.currentPlayerChosenCard.image = UIImage(named: imageString)

    setCardValueForPlayer(player: 1, cardValue: cardValue)
    var playerOneCardValue = checkCardValue(player: 2)

    while playerOneCardValue == 0 {
        print("while loop performed")
        playerOneCardValue = checkCardValue(player: 2)
        }
   if playerOneCardValue > 0 {
        print("if statement performed")
        compareCardValuesForWinner()
        commitToNewPhase()
    }


}

现在,让我说清楚,问题不在于我在这个功能中使用的功能,它如何倾听其他玩家的价值。目前我现在有一个while循环,一直持续到值改变,但这最终导致应用程序崩溃,因为它产生了如此多的垃圾。

我怎样才能以更好,更有效的方式做到这一点,让我'倾听'并等待其他玩家输入,并让应用程序接收它?换句话说,如何继续使用应用程序等待其他玩家数据?

0 个答案:

没有答案