首页 > 解决方案 > 使用实时数据库优化聊天应用程序中的存储和带宽使用

问题描述

我正在开发一个使用实时数据库作为后端的聊天应用程序,这就是我将数据保存到数据库中的方式:

在此处输入图像描述

我用发送它的用户的完整 uid 来识别每条消息。你认为这是必要的,还是我可以只保存 uid 的前 10 个字符(例如)以减少字节?我担心的是,如果在某个时刻 2 个不同的用户会有相同的 10 个第一个字符

标签: firebasefirebase-realtime-database

解决方案


不能保证 UID 的前 10 个字符是唯一的,因此将它们用作标识符并不是一个好主意。

如果您想使用较短的 ID,首先想到的两个选项是:

  • 为房间中的每个用户创建自己的标识符,例如通过给他们一个顺序 ID,然后将其存储。
  • 使用实际的散列函数来确定每个用户的较短的唯一 ID。虽然仍有可能发生冲突(多个用户获得相同的 ID),但与仅获取前 10 个字符相比,这种可能性可能会更小。

在所有情况下,我都强烈建议您计算一下您将通过此方法实现的成本节省。消息长度通常是每条消息大小的主要因素。


推荐阅读