我有Firebase Cloud Function,我必须根据提供的ID获取更多数据,请参见以下代码:-
return admin.firestore().collection('companies').doc(snap.data().companyId).get().then((company) => {
return admin.firestore().collection('customers').doc(snap.data().companyId).get().then((customer) => {
console.log(company, customer);
})
})
有没有一种方法可以组合这些调用,这样我就不必在每次需要获取数据时都对数据库进行2次调用?
这将有助于降低成本并停止拨打昂贵的电话。
此示例仅具有两个调用级别,有时可以达到三个调用,具体取决于我从云函数内部的数据库中获取的信息。
任何帮助将不胜感激。
答案 0 :(得分:0)
您不能同时查询两个不同的集合。您要么执行多个查询,要么提前将数据加入单个集合以查询包含所有数据的数据。这称为“非规范化”,在没有类似SQL的联接操作的NoSQL数据库中很常见。