android - Firebase Firestore 多人游戏对接会
问题描述
所以我想使用 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 真的很陌生,所以如果我遗漏了一些明显的东西,请随时告诉我。我还必须处理多个用户试图同时加入同一场比赛并将事情搞砸的问题。任何建议都有帮助:)
解决方案
推荐阅读
- c# - Unity 中的移动世界规模?
- node.js - 如何跟踪 NodeJS 应用程序中未履行的承诺数量?
- python - Python 类,试图掌握创建类实例以及其他类相关函数的概念
- github-actions - 如何在本地运行 GitHub Actions 工作流程?
- windows - Sqlite3 在 Windows 命令行中不起作用
- python - 将用户-用户和项目-项目相似性矩阵输入神经结构化学习的方法
- r - ggplot中的Quasiquotation问题
- python - django 管理页面不会显示
- sql - 使用proc sql创建表时如何调用选择日期范围的提示?
- css - 具有 css 材质 ui 响应的应用程序样式栏