从Firestore数据库检索文档时,您需要调用此类文档的data()方法来检索有效内容。
我想知道是否有任何计算成本需要你的代码只能这样调用一次:
db.collection('documents').doc('0001').get()
.then(doc => {
const data = doc.data();
let a = data.a;
let b = data.b;
let c = data.c;
});
而不是:
db.collection('documents').doc('0001').get()
.then(doc => {
let a = doc.data().a;
let b = doc.data().b;
let c = doc.data().c;
});
谢谢!
答案 0 :(得分:3)
严格来说,如果代码适合您,则没有“要求”来更改任何内容。如果您不需要,请不要过早优化。也就是说,如果只需要一次调用就可以三次调用方法效率不高。
如果您想查看数据()的作用,可以look directly at the source code。您可以看到它正在为每个调用构建一个新对象,并使用文档中的字段填充该对象。如果你的内存和计算成本是最低要求的3倍,那么就没有问题了。
答案 1 :(得分:1)
我不认为在计算成本方面存在差异:在承诺解决之后(所以当你在那时)你有一个“doc”对象并且你与数据库断开连接。你提到的两种方法得到a,b和c在计算成本方面非常相似(差异可以忽略不计)。