Итак, я хочу создать многопользовательскую игру с использованием Firebase Firestore, которая предполагает сватовство двух игроков.У меня есть коллекция игровых объектов, и в каждой игре есть поле для создателя и участника (только UID пользователей).Я пытаюсь присоединиться к созданным играм и борюсь с этим.Вот то, что у меня сейчас есть.
fun findOpenGame(onComplete: (gameFound: Boolean, gameObject: Game?, gameRef: DocumentReference?) -> Unit) {
gamesCollectionRef
.whereEqualTo("joiner", null)
.get()
.addOnCompleteListener { task ->
if (task.isSuccessful) {
for (document: DocumentSnapshot in task.result) {
val game: Game = document.toObject(Game::class.java)!!
if (game.joiner == null) {
document.reference.update("joiner", FirebaseAuth.getInstance().uid)
.addOnSuccessListener {
onComplete(true, game, document.reference)
}
.addOnFailureListener {
Log.e(FirestoreUtil.javaClass.simpleName, "Couldn't connect to game")
}
}
}
} else {
//no games to join
onComplete(false, null, null)
}
}
}
Кстати, я действительно новичок в Kotlin, поэтому, пожалуйста, не стесняйтесь сказать мне, если я упускаю что-то очевидное.Мне также приходится сталкиваться с проблемой, когда несколько пользователей пытаются присоединиться к одному и тому же матчу и что-то портят.Любой совет помогает:)