我有一个链接到用户的url列表。目前,一旦用户将这些URL添加到应用程序中,我将每个URL保存为一个单独的文档,然后读取与他们的UID匹配的任何文档。
这样做对吗?
对于Firestore,是每次读取每个文档的成本还是每次读取每个项目的成本,无论一个文档中是否有100个项目?
只是想把我的头绕起来,所以任何帮助将是伟大的!
在我看来,你应该为每个用户保存URL的数组。因为firebase对查询匹配的每批最多1000个索引项的一次文档读取收费。点击此链接了解更多详情:
我将每个URL保存为一个单独的文档,然后读取与其UID匹配的任何文档。这是正确的做法吗?
不是最好的解决方案。虽然这种解决方案肯定会起作用,但它的成本有点高,因为您必须为读取的每个文档支付读取操作。在我看来,最好的选择是将这些url存储在用户文档中的数组中。模式应该如下所示:
db-root
|
--- users (collection)
|
--- $uid (document)
|
--- urls: ["https://...", "https://...", "https://..."] (array)
|
--- //Other fields.
是每次读取每个文档的成本还是每次读取每个项目的成本,无论一个文档中有100个项目?
无论文档中有多少个字段,它总是按文档读取。