Vous ne pouvez pas déboguer des fonctions Firebase sans d'abord définir les variables de configuration Firebase. Firebase CLI le fait pour vous.
Pour déboguer, vous pouvez essayer le même truc que pour le test unitaire des fonctions Firebase.
Ajouter les lignes suivantes au fichier index.js avant d'appeler admin.initializeApp(functions.config().firebase)
:
admin.initializeApp = function() {}
functions.config = function() {
return {
firebase: {
databaseURL: 'https://not-a-project.firebaseio.com',
storageBucket: 'not-a-project.appspot.com',
}
};
}
Vous pouvez déboguer les fonctions Firebase maintenant d'une même manière que toute autre fonction de nuage google:
Installer l'émulateur des fonctions du nuage:
npm install -g @google-cloud/functions-emulator
St es Emulator:
functions start
Déployez votre fonction:
functions deploy helloWorldFunction --trigger-http
Vous obtiendrez une sortie comme ceci:
Waiting for operation to finish...done.
Deploying function........done.
Function helloWorldFunction deployed.
Property | Value
---------|------------------------------------------------------------------------
Name | helloWorldFunction
Trigger | HTTP
Resource | http://localhost:8010/helloWorldProject/us-central1/helloWorldFunction
Pour déboguer en utilisant le type standard Node.js Debugger:
functions debug helloWorldFunction
Vous obtiendrez:
Debugger for helloWorldFunction listening on port 5858.
Maintenant, ajoutez les lignes suivantes à votre launch.json VS code
{
"version": "0.2.0",
"configurations": [
{
"name": "Node.JS (local)",
"type": "node",
"request": "attach",
"port": 5858
}
]
}
Démarrer le débogage dans votre code VS et déclencher votre fonction en appelant URL que vous avez à l'étape # 3.
Vous pouvez également déclencher la fonction en tapant functions call helloWorldFunction
dans le terminal.
Pour plus de détails, voir les instructions ici Cloud Functions Local Emulator.
Le débogage via des tests unitaires est probablement votre meilleure option en ce moment: https://firebase.google.com/docs/functions/unit-testing –
Pas l'option préférée mais si c'est le seul qui fonctionne, je vais avec ça . –