使用Firestore数据库时,对文档调用data()是否有计算成本?

时间:2018-04-19 20:04:24

标签: firebase google-cloud-firestore

从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;
    });

谢谢!

2 个答案:

答案 0 :(得分:3)

严格来说,如果代码适合您,则没有“要求”来更改任何内容。如果您不需要,请不要过早优化。也就是说,如果只需要一次调用就可以三次调用方法效率不高。

如果您想查看数据()的作用,可以look directly at the source code。您可以看到它正在为每个调用构建一个新对象,并使用文档中的字段填充该对象。如果你的内存和计算成本是最低要求的3倍,那么就没有问题了。

答案 1 :(得分:1)

我不认为在计算成本方面存在差异:在承诺解决之后(所以当你在那时)你有一个“doc”对象并且你与数据库断开连接。你提到的两种方法得到a,b和c在计算成本方面非常相似(差异可以忽略不计)。