在firebase中更改用户名

何塞·卡洛斯

我正在使用 firebase 制作聊天应用程序。对于每个包含任何名称的文档,我将其创建为auth.currentUser.displayName. 例如,聊天中的每条消息都是一个文档,创建为:

sender: currentUser?.displayName!,
      avatar: currentUser?.photoURL!,
      content: message,
      time,

关于更改用户名,我知道该怎么做,但如果我更改我的用户名,我将不得不访问包含我姓名的每个用户的所有文档并进行更改。有更好的方法吗?就像,而不是auth.currentUser.displayName,我使用类似的东西user XYZ.displayName,如果用户 XYZ 更改其名称,它也会在所有其他文档中更改。

提前致谢

雷诺·塔内克

但是,如果我更改我的用户名,我将不得不访问每个包含我的姓名的用户的所有文档并更改它。

这确实是 NoSQL 数据库中数据建模的结果,在该数据库中您复制数据而不是像在 SQL 数据库中那样对其进行规范化。

有更好的方法吗?

除了模仿 SQL 数据库(在唯一的用户文档中拥有用户名并在每次您想要显示此用户名时获取此文档 - 即您模仿 SQL 连接),除了更新包含值的每个文档之外别无他法用户名。

模仿 SQL 数据库意味着每次想要在聊天中显示消息时,都需要获取包含用户名值的文档(不利于成本和性能)。保持非规范化方法意味着您只需要在用户名更改时更新所有相应的消息文档。因此,根据用户名更新的频率,您可以决定哪一个是最好的。

就像,我使用用户 XYZ.displayName 代替 auth.currentUser.displayName,如果用户 XYZ 更改其名称,它也会在所有其他文档中更改。

基本上这不会有任何区别,因为您必须更新所有包含(以前的)用户名的文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章