如何使用firebase为多人测验应用创建动态空间?

时间:2018-03-18 17:31:55

标签: firebase multiplayer

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

please fine image here

1 个答案:

答案 0 :(得分:1)

良好的开端。在开始编码之前,最好准确地表达您想要的内容。听起来你对自己想要的东西非常了解。

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

如果我理解你的要求:

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

可扩展性

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

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

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.