firebase - 使用实时数据库优化聊天应用程序中的存储和带宽使用
问题描述
我正在开发一个使用实时数据库作为后端的聊天应用程序,这就是我将数据保存到数据库中的方式:
我用发送它的用户的完整 uid 来识别每条消息。你认为这是必要的,还是我可以只保存 uid 的前 10 个字符(例如)以减少字节?我担心的是,如果在某个时刻 2 个不同的用户会有相同的 10 个第一个字符
解决方案
不能保证 UID 的前 10 个字符是唯一的,因此将它们用作标识符并不是一个好主意。
如果您想使用较短的 ID,首先想到的两个选项是:
- 为房间中的每个用户创建自己的标识符,例如通过给他们一个顺序 ID,然后将其存储。
- 使用实际的散列函数来确定每个用户的较短的唯一 ID。虽然仍有可能发生冲突(多个用户获得相同的 ID),但与仅获取前 10 个字符相比,这种可能性可能会更小。
在所有情况下,我都强烈建议您计算一下您将通过此方法实现的成本节省。消息长度通常是每条消息大小的主要因素。
推荐阅读
- java - 使用 LDAP 和 Java 进行用户身份验证
- apache - 将 env 回显到简单表
- wordpress - WordPress API 的 Access-Control-Allow-Origin 和 CORS 问题
- html - 尽管 100% 的宽度和 100vw 的主体,我的标题比屏幕宽
- python - 如何使用超声波传感器向上或向下移动精灵?
- java - 将 getter 合并到静态方法中时遇到问题
- sql - SQL 返回具有某些关联并排除其他关联的记录
- javascript - 使用 getElementById 时 Chrome 扩展程序无法找到按钮
- linux - VSCode 在 Linux 系统中找不到文件
- ruby-on-rails - 如何获得 r_1st_connections 的权限