使用实时数据库在聊天应用程序中优化存储和带宽使用

时间:2020-07-05 04:16:21

标签: firebase firebase-realtime-database

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

enter image description here

我用发送该消息的用户的完整uid标识每条消息。 您是否认为这是必要的,还是只能保存uid的前10个字符(例如)以减少字节?我担心的是,如果某个时候2个不同的用户会有相同的10个首字符

1 个答案:

答案 0 :(得分:0)

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

如果您想使用更短的ID,那么想到的第两个选项是:

  • 为房间中的每个用户创建自己的标识符,例如,给他们一个顺序ID,然后存储它。
  • 使用实际的哈希函数为每个用户确定较短的唯一ID。尽管仍然有可能发生冲突(多个用户使用相同的ID),但是与您仅输入前10个字符时相比,发生冲突的可能性可能较小。

在所有情况下,我强烈建议您计算可节省的成本。邮件长度通常是每个邮件大小的主要因素。