web-dev-qa-db-fra.com

Débogage des fonctions cloud de Firebase

Comment déboguer avec le code de Visual Studio Firebase-database trigger functions?

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

Ce code je veux déboguer

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.
});

c'est mon fichier de lancement

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Debug Function",
        "type": "node",
        "request": "attach",
        "port": 5858
    }
]
}
6
niksn

debug-agent requis uniquement pour le débogage distant. Si vous souhaitez déboguer une fonction localement, utilisez Cloud Functions Emulator.

https://cloud.google.com/functions/docs/emulator

3
QuestionAndAnswer

Vous pouvez le faire fonctionner avec Visual Studio Code en utilisant les fonctions de Firebase 1.0 sans rien modifier du code de la fonction ..__et votre configuration de lancement semble être correcte ...

En gros, il vous suffit de définir correctement la variable d’environnement FIREBASE_CONFIG lors de l’exécution de la commande functions deploy . Quelque chose comme (n’oubliez pas d’échapper des caractères "):

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

Cela fonctionne avec Firebase Functions 1.0 car dans la nouvelle version, les fonctions de Firebase lisent sa configuration à partir de l'environnement ( https://firebase.google.com/docs/functions/beta-v1-diff#new_initialization_syntax_for_firebase_admin )

Après cela, il vous suffit d’exécuter normalement le functions debug FUNCTION_NAME [--port] pour lancer le débogueur de fonctions et exécuter votre configuration de code VS 'Attach'.

J'ai écrit un petit tutoriel à ce sujet avec plus de détails et d'images: https://medium.com/@mwebler/debugging-firebase-functions-with-vs-code-3afab528bb36

1
mwebler