【问题标题】:Creating a room with Firebase for a web app [closed]使用 Firebase 为网络应用创建房间 [关闭]
【发布时间】:2017-04-04 15:55:25
【问题描述】:

我目前正在构建一个基于 firebase 的网络应用程序,并希望用户能够创建和加入游戏室。目前我在试图弄清楚如何创建其他人可以加入的房间时遇到问题。我想知道是否有人可以帮助我开始解决这个问题。仅供参考,如果这很重要,每个将创建和加入房间的用户都将拥有自己的具有唯一 ID 的帐户

【问题讨论】:

  • 您好,您可以启动 Firebase 身份验证:firebase.google.com/docs/auth,这意味着您的房间将无法访问,除非通过 Firebase 或您的应用和 Firebase 登录
  • 目前我有它,因此您必须先登录才能显示创建或加入房间的选项
  • 好的,那你有什么问题?

标签: javascript html firebase web firebase-realtime-database


【解决方案1】:

Firebase 没有任何房间的概念。有父节点和子节点,它们通过键:值对进行代码处理,非常类似于字典。

Firebase 中也没有用户,除了在 Firebase 中创建新用户并存储在服务器内部时创建的用户 ID (uid) 和相关数据。该数据用于身份验证。如果需要存储有关用户的其他数据(可能是名称),则在数据库本身内完成。

为了简单起见,假设我们要存储有关用户和房间的信息。

users
  uid_0
    name: "Bill"
  uid_1
    name: "Ted"
  uid_27
    name: "The Doctor"

uid 是新用户在 Firebase 中创建帐户时创建的。您的应用将收集 Firebase 提供的 uid 并将其和任何其他用户数据写入用户节点;在本例中为用户名。

然后是房间

rooms
   room_0
     room_name: "Phone Booth"
     description: "Time travelling in style; Excellent!"
     uid_0: true
     uid_1: true
   room_1
     room_name: "Tardis"
     description: "It's bigger on the inside"
     uid_27: true

在本例中,room_0(电话亭)里有比尔和泰德,房间_1 里有医生。

这不是构建数据的唯一方法,您的结构可能与此有很大不同,但它是一个起点。

注意:键名几乎总是应使用 push() 创建。我使用 room_0 等作为占位符。最佳做法是将主父键名称与其包含的数据分离。即不要用电子邮件地址之类的东西硬编码键名 - 这是个坏消息。

【讨论】:

  • 非常感谢,这对您有很大帮助。只是为了澄清用户创建房间时将调用的 push() 函数。然后房间会被分配一些值来引用正确吗?
  • @jhigg15 正确!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 2017-11-21
相关资源
最近更新 更多