【问题标题】:How to make a dynamic room for multiplayer quiz app using firebase?如何使用 Firebase 为多人测验应用创建动态房间?
【发布时间】:2018-03-18 17:31:54
【问题描述】:

我正在制作一个应用程序。我的意思是一个游戏类型的应用程序。这是一个测验应用程序,两个人可以 将它们配对并可以一一回答问题,依此类推。 我想要的是: 我想做一个虚拟房间, 当 USER1 想玩时,他会点击搜索竞争对手,一个玩家会创建一个带有随机字符串键的虚拟房间。 然后当 USER2 点击查找竞争对手按钮时,他的房间也将被创建,他还将搜索在他之前创建的所有房间,如果任何房间的用户少于 2 个,那么他将加入该房间并开始玩。 我是新手,所以我不确定这是否是好方法,但这就是我计划的全部。 如何计算节点的子节点(我们不知道它的键是什么的节点.. ) 见附图

please find image here

【问题讨论】:

    标签: firebase multiplayer


    【解决方案1】:

    好的开始。在开始编码之前,最好准确地表达你想要什么。听起来您很清楚自己想要什么。

    我建议使用 Firestore 和 firebase.auth,即使只是匿名的,这样每个用户都可以在他们的应用程序中拥有“状态”和通用 ID。换句话说,当他们关闭并重新打开应用程序时,应用程序会为他们保留一个通用 id,uid。

    如果我了解您的要求:

    • 每个用户可以拥有多个房间
    • 每个房间最多有 2 个用户

    可扩展性

    就搜索现有房间而言,如果没有一些分类,这将无法扩展。如果你有 1000 个房间会怎样?用户将如何搜索所有内容?因此,您需要为每个房间添加主题或标签。这样就可以查询where("tag")==chosenTag

    基本上每个虚拟房间都有标识 2 个用户(uid)的字段,并且有子集合 - 每个集合都有一个文档

    uid 有字段 (accountCreateDate, favoriteColor, 以及他们参与的每个房间的 uid (作为一个键), 其中值是一个整数, 例如 (1== 等待响应, 2==关闭, 3= =随便)。

    Firestore 结构

    users(collection > userUid(document containing aboce said)

    rooms(collection) roomA(Document w field identifying subject/name) AND sub-collection containing a doc for each pair of participants.

    【讨论】:

    • 嗨罗恩罗伊斯顿。谢谢回答。我不希望一个用户在多个房间。我希望一个用户只在一个房间里玩,如果他关闭应用程序,那么什么都没有发生,但在用户 2 端(仍然在线)会有倒计时,以便用户 2 等待用户 1,如果他不回复,那么应用程序将考虑他回答不正确..我希望它有意义..我认为firestore用于存储图像和视频等数据..?
    • 你能给我推荐任何文章或 youtube 视频来获得帮助吗?或者任何 androidstudio 代码示例?
    • 实际上我已经使用电子邮件和密码使用 Firebase 进行了注册和登录活动,我也已经创建了 MCQ 应用程序,但现在我希望它像多人游戏一样......
    • @RashidIqbal Firebase Cloud Storage 用于存储媒体文件。 Firestore 是 Firebase 的新数据库(相对于原来的“实时数据库”)。 Firestore 有更多的功能。因此,使用测验的子文档创建一个名为“测验”的集合。也许一个叫“酒的种类”,另一个叫“鱼的种类”。每个测验文档都有一个房间子集。那可能有用吗?...
    • 我不知道..也许我应该在 firestore 上搜索并学习如何使用 firestore
    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2022-01-08
    • 2015-02-23
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多