In V2 you have to use the intent name instead of the action name. First you define this at the beginning of the index file:
'use strict';
const {dialogflow} = require('actions-on-google');
const functions = require('firebase-functions');
const app = dialogflow({debug: true});
Then you have to add the code for each intent:
app.intent('intentName1', (conv, {parameterName}) => {
conv.close('Answer text');
});
app.intent('intentName2', (conv, {parameterName}) => {
conv.ask('Answer text');
});
Finally, at the end of the index file, it is necessary to set the DialogflowApp object to handle the HTTPS POST request. Like this:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
In your example:
dialogflowApp.intent('myIntent', (conv, {version}) => {
conv.close('test');
});
You should check that you have defined 'dialogflowApp' at the begining of index file:
const dialogflowApp = dialogflow({debug: true});
Then you have two options:
Replace 'myIntent' with the name of the intent
Change your intent name to be 'myIntent'
IMPORTANT: You have to make sure that the intent name in dialogflow and that in the code are exactly the same, since it is case sentive.
'version' should be the name of a parameter received from that intent.
Also check that you have this at the end of the index file:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(dialogflowApp);
Hope this can help! :)