调试Firebase云函数

r6hnlfcb  于 2023-08-07  发布在  其他
关注(0)|答案(5)|浏览(83)

如何调试Visual Studio代码firebase-database* trigger函数?我尝试了模拟器,但是当我调用这个的时候得到一个错误

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
    }
]
}

gopyfrb3

gopyfrb31#

debug-agent仅用于远程调试。如果您想在本地调试函数,请使用Cloud Functions Emulator。
https://cloud.google.com/functions/docs/emulator

ljo96ir5

ljo96ir52#

在一个简单的步骤,我做了以下,我不仅能够调试功能,但我获得自动重建每次我做了更改:首先创建一个像这样的启动器(我想你使用的是vs-code):

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Debug",
      "port": 9229
    }
  ]
}

字符串
然后分别运行这两个命令:

npm run build:watch

firebase emulators:start --inspect-functions


调试愉快

r1zhe5dt

r1zhe5dt3#

您可以使用Firebase Functions 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 Functions 1.0,因为在新版本中,Firebase函数从环境中读取其配置(https://firebase.google.com/docs/functions/beta-v1-diff#new_initialization_syntax_for_firebase_admin)
之后,您只需正常运行functions debug FUNCTION_NAME [--port]以启动函数调试器并运行“Attach”VS Code配置。
我写了一个小教程,有更多的细节和图像:https://medium.com/@mwebler/debugging-firebase-functions-with-vs-code-3afab528bb36

ki1q1bka

ki1q1bka4#

使用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浏览器,并且可能会有点慢,所以给予它一些时间。一旦运行,它应该会遇到调试器断点等。

tez616oj

tez616oj5#

调试触发函数的一种简单方法是在模拟器中将其作为可调用函数进行测试,然后手动触发它。然后当你知道它按照你想要的方式工作时,把它变成一个触发函数。这样你至少知道问题出在你的路径或者你如何访问变量。

相关问题