Firebase Firestore易于记忆的参考

时间:2019-01-12 13:57:38

标签: firebase google-cloud-firestore

我们正在使用Firebase Firestore进行数据存储。当用户创建新房间时,我们希望引用易于记忆,以便用户可以与其他用户共享房间ID /代码。

目前,Firestore将创建唯一的引用,例如: DvfTMYED5cWdo5qIraZg

这太长了,难以记住或分享。我们可以手动设置其他参考,但是它们必须是唯一的。另一点是用户可以创建多个房间,因此引用每次都必须更改。

在此用例中是否有使用简短/更好引用的方法?

1 个答案:

答案 0 :(得分:1)

Firebase / Firestore没有为较短的引用内置的内容,因为它们没有足够的熵来从统计学上保证唯一性。但是,由于创建聊天室的操作量可能很小,因此您可以通过以下方式在您的应用中实现此操作:

  1. 为每个房间生成自己的令牌,例如柜台。
  2. 在数据库中检查此房间是否可用。
  3. 如果令牌已被使用,请生成另一个令牌,然后重试。

这几乎就是大多数数据库上自动递增字段的工作方式。在Firestore上,您将创建一个文档,在其中保留当前计数器值:

chat_rooms (collection)
  COUNTERS: { last_room_id: 2 } (document)
  chatroom_1: { room_id: 1, name: "Chat room for Stuart and Frank" } (document)
  chatroom_2: { room_id: 2, name: "Public chat room" } (document)

现在创建新房间时,您:

  1. 启动transaction
  2. 阅读COUNTERS
  3. 读取last_room_id,然后递增。
  4. 写回更新的文档。
  5. 为新的聊天室创建一个新文档。
  6. 提交交易

请注意,有很多方法可以生成代码。上面的计数器方法很简单,但我建议您检查更多选项。一些有趣的读物: