我有一个node
项目,是使用Vue
,Firebase Hosting
和Cloud Functions
用Firestore
创建的。
我可以使用npm run build | firebase serve
在本地部署。在Vue
应用中,我使用firebase.functions().httpsCallable('placeOrder').then((result) => {...})
A
可以做到这一点,以便Function
调用调用Functions emulator
(在端口5001
上运行)并且我可以使用断点逐步执行代码吗?
B
如果无法从本地托管站点调用仿真器,该如何在本地进行Cloud Functions
开发?我读了很多文章,但它们似乎已经过时了。我可以使用Functions Framework模拟一个函数,并在调用该函数时获取日志,但是我不确定如何将调试器附加到该函数。另外,如果Function
读/写Firestore
会发生什么?它会读/写模拟的吗?
欢呼
答案 0 :(得分:1)
我会告诉你什么对我有用。我喜欢火力基地,但是使用本地模拟器对我来说有点像痛苦。我知道随着时间的推移会越来越好,但是还没有到。也许其他人可以给我们更好的方法
使用express并在端口5001中提供您的功能。您可以将调试器附加到使用断点的位置。选中here。
文件夹结构
| functions/
----| index.js
----| app.js
----| tests/
--------| app.spec.js
| serve.js
index.js
const functions = require('firebase-functions');
const app = require('./app');
module.exports.app = functions.https.onRequest(app);
app.js
const express = require('express');
const app = express();
app.use('/', (req, res) => {
// do stuff
});
module.exports = app;
serve.js
const bodyParser = require('body-parser');
const port = 5001;
const app = require('./functions/app.js');
app.use(bodyParser.json());
const message = `app is listening on port ${port}!`;
app.listen(port, () => console.log(message));
单元测试将使您在处理云功能时的生活更加轻松。它们可以节省您的时间,同时可以使您成为更好的程序员。
注意:在这种情况下,您实际上正在使用firestore数据库,因此请确保您具有开发环境。 如果您曾经使用模拟器进行Firestore,则它位于您的本地计算机中,因此不会写入真实数据库。希望有帮助