Firebase Cloud Functions-使用VSC进行调试

时间:2019-10-21 12:47:29

标签: firebase visual-studio-code google-cloud-functions functions-framework

我有一个node项目,是使用VueFirebase HostingCloud FunctionsFirestore创建的。

我可以使用npm run build | firebase serve在本地部署。在Vue应用中,我使用firebase.functions().httpsCallable('placeOrder').then((result) => {...})

调用 Cloud Function

A
可以做到这一点,以便Function调用调用Functions emulator(在端口5001上运行)并且我可以使用断点逐步执行代码吗?

B
如果无法从本地托管站点调用仿真器,该如何在本地进行Cloud Functions开发?我读了很多文章,但它们似乎已经过时了。我可以使用Functions Framework模拟一个函数,并在调用该函数时获取日志,但是我不确定如何将调试器附加到该函数。另外,如果Function读/写Firestore会发生什么?它会读/写模拟的吗?

欢呼

1 个答案:

答案 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,则它位于您的本地计算机中,因此不会写入真实数据库。希望有帮助