在Firestore中更新和排序好友列表期间的无成本方法

时间:2019-05-29 07:09:04

标签: firebase google-cloud-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)  -> ...  

此结构存在两个问题,当用户要按名称/字母对朋友的朋友进行排序时,他需要致电其所有朋友的朋友(子集合)以成功进行排序。因此,通话次数直接取决于他的朋友人数。

其次,当用户更改了其可见性设置时,需要更新在Friend的子集合中注册的非规范化数据的可见性。因此,如果您是从“云功能”触发的,则文档调用的次数将直接取决于用户的朋友数。上面两个问题的费用都是开放的。

如果在Firestore中可以使用其他无成本的结构来解决这些问题,我将感到很高兴。

0 个答案:

没有答案