我想更好地了解Firestore API中哪些事件触发计费。例如,下面的代码是一读一写还是只写一写?
db.collection("cities").doc("DC").update({ capital: true });
当取回文档列表时,读取的文档实际何时计费?例如:
const snapshot = await db.collection("cities").get();
snapshot.forEach((docRef) => console.log('First: ', docRef.data());
// ...execute some more code...
snapshot.forEach((docRef) => console.log('Second: ', docRef.data());
在本例中,我将循环两次返回的数据快照。计费是发生在.get()
上还是发生在每个docRef.data()
上?具体来说,在这些列表案例中,我试图弄清楚我是否可以挂起snapshot
,或者我是否应该将它们转换为纯JSON对象。我知道文档和视频中说不要在计费方面进行优化,但同时我希望对此保持聪明,这样我以后就不必重构了。
对于您的第一个代码片段,您将被收取单个文档写入操作的费用。
对于读取操作,当服务器需要代表您读取文档时,您将被收取费用,在您的第二个代码段中,当您调用get()
时会发生这种情况。因此,无论您访问该快照中的数据的频率如何,snapshot
中的每个文档都将向您收取一次费用。
您将只收到一次单据,因此只会收到一次账单。因此,在您的情况下,cities
集合中的每个文档将花费您1次阅读