[英]Debugging firebase cloud functions
如何使用 Visual Studio 代码firebase-database触发函数进行调试? 我尝试了模拟器,但是当我调用它时出现错误
functions debug myMethod
C:\functions\functions>functions debug createUserChat
ERROR: Error: Function myMethod in location us-central1 in project myProject does not exist
at C:\Users\Dev\AppData\Roaming\npm\node_modules\@google-cloud\functions-emulator\node_modules\grpc\src\client.js:554:15
这段代码我想调试
require('@google-cloud/debug-agent').start({ allowExpressions: true });;
const functions = require('firebase-functions'),
admin = require('firebase-admin'),
logging = require('@google-cloud/logging')();
admin.initializeApp(functions.config().firebase);
exports.myMethod= functions.database.ref('Tasks/{taskID}/taskStatus').onUpdate(event =>{
// do sth.
});
这是我的启动文件
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Function",
"type": "node",
"request": "attach",
"port": 5858
}
]
}
debug-agent
仅用于远程调试。 如果您想在本地调试函数,请使用 Cloud Functions Emulator。
您可以使用 Firebase 函数 1.0 使其在 Visual Studio Code 上运行,而无需对函数代码进行任何更改。 你的启动配置似乎是正确的......
您基本上只需要在运行functions deploy
命令时正确设置 FIREBASE_CONFIG 环境变量。 类似的东西(不要忘记转义 " 字符):
FIREBASE_CONFIG="{\"databaseURL\":\"https://YOUR-FIREBASE-PROJECT.firebaseio.com\",\"storageBucket\":\"YOUR-FIREBASE-PROJECT.appspot.com\",\"projectId\":\"YOUR-FIREBASE-PROJECT\"}
functions deploy --trigger-http --timeout 600s FUNCTION_NAME
这适用于 Firebase 函数 1.0,因为在新版本中 Firebase 函数从环境中读取它的配置( https://firebase.google.com/docs/functions/beta-v1-diff#new_initialization_syntax_for_firebase_admin )
之后,您只需正常运行functions debug FUNCTION_NAME [--port]
以启动函数调试器并运行您的“附加”VS Code 配置。
我写了一个关于更多细节和图像的小教程: https : //medium.com/@mwebler/debugging-firebase-functions-with-vs-code-3afab528bb36
使用firebase emulators:start --inspect-functions --only functions
文档中的更多内容: https : //firebase.google.com/docs/emulator-suite/install_and_configure
使用npm ls -g --depth=0 ├── firebase-tools@9.2.2 ├── firebase@8.2.5
相关问答: https : //stackoverflow.com/a/65430902/965666
以前(不再适用于上述更新版本):
尝试: ndb firebase serve
这会打开一个带有调试工具的特定 Chrome 浏览器,并且检测所有子进程可能会有点慢,所以给它一些时间。 一旦运行它应该命中调试器断点等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.