firebase - Firestore中更新和排序朋友列表期间的无成本方法
问题描述
我在 Firestore 中使用了数据库非规范化。用户可以轻松地按他的名字/字母对他的朋友进行排序,而不会出现问题。此外,除非朋友禁用可见性设置,否则用户可以看到“朋友的朋友”。
User(collection)
->User ID(Doc) -> Name: Name0
-> visibility: true
-> Friends (sub-collection)
->Friend1 ID (Doc) -> Name: friend1Name
-> visibility: true
->Friend2 ID (Doc) -> Name: friend2Name
-> visibility: true
->Friend3 ID (Doc) -> Name: friend3Name
-> visibility: false
->...
->User ID(Doc) -> ...
这种结构产生了两个问题,当用户想按姓名/字母排序朋友的朋友时,他需要调用他所有朋友的朋友(子集合)才能成功排序。所以,通话的数量直接取决于他的朋友的数量。
其次,当用户更改了他的可见性设置时,需要更新他在朋友的子集合中注册的非规范化数据的可见性。因此,如果从“云功能”触发,文档调用的数量直接取决于用户的好友数量。上述两个问题的费用都是开放式的。
如果有一个替代的无成本结构来解决 Firestore 中的这些问题,我会很高兴。
解决方案
推荐阅读
- javascript - 尝试使用 $.ajax 发送 JSON,而是发送查询字符串
- firebase - Firebase 实时数据库 - 删除所有子项但保留父项
- android - 如何在换行的开头有固定间距
- django - Django REST框架多对多错误
- jquery - Jquery:将元素从列表移动到另一个
- java - 将文本文件中的数据保存到Java中的数组中
- java - Spring Data Elasticsearch 是否支持 Multi Search API?
- spring-boot - Spring Boot Spring 安全选项调用 403
- javascript - 我在使用 VueJS 将数据输出到动态生成的表时遇到问题
- bash - 如何使用 BASH 命令显示由一个到多个空格分隔的特定列?