我已经使用 node.js 通过 Firebase Functions 创建了一个 API 端点。这 API 端点从客户端浏览器收集 JSON 数据,我使用 Firebase 函数将该 JSON 数据保存到 Firebase Firestore 数据库。
虽然这工作正常,但当我看到 Firestore 使用选项卡时,它显示了非常大量的读取操作,即使我到目前为止还没有创建任何读取功能。
我的 API 已投入生产,当前使用数据为:读取 9.7K、写入 1K、删除 0。
我已尝试检查 Firebase Firestore 文档和定价,但似乎从未找到有关此问题的任何信息。
我正在使用 Firestore 添加功能来创建具有自动生成的文档 ID 的文档。 ValidateSubscriberData() 是一个简单的函数,用于验证客户端 req.body 输入(JSON 数据)。
app.post('/subscribe', (req, res) => {
let subscriber = {};
ValidateSubscriberData(req.body)
.then(data => {
subscriber = data;
//console.log(data);
subscriber.time = Date.now();
return subscriber;
})
.then(subscriber => {
//console.log(subscriber);
// noinspection JSCheckFunctionSignatures
return db.collection(subscriber.host).add(subscriber);
})
.then(document => {
console.log(document.id);
res.json({id: document.id, iid: subscriber.iid});
return 0;
})
.catch(error => {
console.log({SelfError: error});
res.json(error);
});
});
我不知道这是 Firestore 的问题,还是我正在以某种方式在内部进行读取操作,但我想找到一种方法来优化我的代码。
英语不是我的母语,我正在尽力解释我的问题。
最佳答案
我认为 Firestore 工作得很好,我的代码也是如此。我假设 Firebase 正在计算我通过 Firebase 控制台进行的读取。
为了验证这一点,我单击了 Firestore 页面上的“数据”选项卡,然后向下滚动以使所有文档名称/ID 可见。之后,我看到我的旧统计数据中添加了 1K Reads。因此,经过验证的 Firestore 会计算所有读取,甚至包括来自 Firebase 控制台的读取,这是显而易见的,但我的错是我之前没有考虑过这一点。
我认为这个问题没有任何相关性,但像我这样的人可能会在这个有用的平台上发布任何愚蠢的问题之前发现它很有帮助。
关于node.js - 为什么 Firebase Firestore 会计算读取操作,而我只添加新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57746470/