【发布时间】:2020-09-10 03:20:22
【问题描述】:
使用复杂子句创建 onSnapshot 或创建使用简单子句创建 3 个快照 存在任何成本或性能差异。此外,posts 集合有一个规则,如果登录的用户有权阅读帖子,则检查 posts_permission 集合。这是一个移动项目,所以我关心性能和成本,因为帖子可以不断更新。
复句:
const query = db.collection('posts')
.where(firebase.firestore.FieldPath.documentId(), 'in', ['id1','id2', 'id3']);
query.onSnapshot(snap => {console.log(snap)});
简单从句:
const query1 = db.collection("posts").doc("id1")
const query2 = db.collection("posts").doc("id2")
const query3 = db.collection("posts").doc("id3")
query1.onSnapshot(snap => {console.log(snap)});
query2.onSnapshot(snap => {console.log(snap)});
query3.onSnapshot(snap => {console.log(snap)});
【问题讨论】:
-
您还需要考虑它们是三个不同的请求,其中一两个可能会尝试网络延迟。一般来说,由于文档被索引,它们最好一次查询
标签: javascript firebase mobile google-cloud-firestore firebase-security