如何使Web使用Firebase Cloud功能(Express) 托管 Firestore



我正在Firebase上创建网站。

现在我的网站正在工作。

,但我不知道如何读取firestore数据和数据响应。

router.get('/', function(req, res, next) {
    admin.firestore().collection('post').get()
    .then(snap => {
        const data = snap.size;
        console.log("size: " + data);
        return res.status(200).send(data);
    }).catch(err => {
        console.log(err);
        res.status(500).send(err);
    });
});
module.exports = router;

日志是有效的,但不响应。

RangeError: Invalid status code: 24
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (/user_code/node_modules/express-session/node_modules/on-headers/index.js:55:19)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:573:10)
    at ServerResponse.end (/user_code/node_modules/express-session/index.js:354:19)
    at ServerResponse.send (/user_code/node_modules/express/lib/response.js:221:10)
    at admin.firestore.collection.get.then.snap (/user_code/routes/main.js:14:26)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)

const data = snap.size为您提供了一个数字类型变量,这是您刚刚查询的收集大小。当您将一个数字发送到发送()时,似乎告诉Express您要将该号码作为HTTP状态代码发送给客户端(显然它覆盖了您使用status())。send()的API文档甚至没有说您可以传递数字。

如果要发送一个数字作为响应的正文,请尝试将其转换为字符串:

res.status(200).send('' + data);

或将其捆绑到JSON对象中供客户端解析,这可能更好。

相关内容

  • 没有找到相关文章

最新更新