为什么 Firebase Firestore 计数读取操作而我只是添加新文档?

Rak*_*esh 1 node.js firebase google-cloud-functions google-cloud-firestore

我已经创建了一个带有 Firebase 函数使用 node.js 的 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);
        });
});
Run Code Online (Sandbox Code Playgroud)

我不知道这是 Firestore 的问题,或者我正在以某种方式在内部进行读取操作,但我想找到一种方法来优化我的代码。

英语不是我的第一语言,我正在尽力解释我的问题。

Rak*_*esh 6

我认为 Firestore 工作得很好,我的代码也是如此。我假设 Firebase 正在计算我通过 Firebase 控制台所做的读取。

为了验证这一点,我点击了 Firestore 页面上的数据选项卡并向下滚动以显示所有文档名称/ID。之后,我看到 1K Reads 添加到我的旧统计数据中。因此,它经过验证的 Firestore 会计算所有读取,甚至是来自 Firebase 控制台的读取,这很明显,但我的坏处是我之前没有考虑过这一点。

我不认为这个问题有任何相关性,但在这个有用的平台上发布任何愚蠢的问题之前,像我这样的人可能会觉得它很有帮助。

  • Firestore 控制台进行的读取确实与您的应用程序通过 API 进行的读取计数相同。对于刚接触 Cloud Firestore 的开发人员来说,这是一个常见的困惑源,因此请自行解决这个问题。:) 另请参阅 /sf/ask/3575143911/、/sf/ask/3710009131/、/sf/ask/3950380591/ (2认同)