Exports.module和Firebase-admin的问题

问题描述

我遇到了问题,索引中的代码如下:

const functions = require ('firebase-functions');
const {WebhookClient} = require ('dialogflow-fulfillment');
const {Card,Suggestion} = require ('dialogflow-fulfillment');

process.env.DEBUG = 'dialogflow: debug';

exports.dialogflowFirebaseFulfillment = functions.https.onRequest ((request,response) => {
    const agent = new WebhookClient ({request,response});
    console.log ('Dialogflow Request headers:' + JSON.stringify (request.headers));
    console.log ('Dialogflow Request body:' + JSON.stringify (request.body));

    function SubmitFeedback (agent) {
        var functioncaoFeedback = require ('./EnviarFeedback');
        functionFeedback.SendFeedback (agent);
    }

    let intentMap = new Map ();
    intentMap.set ('inputName',CheckName);
    intentMap.set ('confirmFeedback',SendFeedback);
    intentMap.set ('InputMessage',CheckMessage);
    intentMap.set ('InputValues',CheckValue);
    intentMap.set ('negacaoFeedback',CheckNegacao);
    agent.handleRequest (intentMap);
});

我正在调用文件EnviarFeedback.js的函数“ EnviarFeedback”,但是它在日志中给出了错误,并且错误是:

未处理的拒绝

函数执行耗时537毫秒,状态为:“崩溃”

这是SubmitFeedback.js文件

const admin = require ('firebase-admin');

admin.initializeApp ({
    credential: admin.credential.applicationDefault (),databaseURL: 'https://pri-ambiente-de-teste.firebaseio.com/'
});

module.exports.SendFeedback = function (agent) {
    var context = agent.context.get ('result');
    var name = context.parameters.name;
    var value = context.parameters.valor;
    var message = context.parameters.mensagem;
    console.log (name,value,message);
    let banco = admin.database (). ref ('Data /');
    console.log (JSON.stringify (bank));
    return banco.push ({
        Name: name,Value: value,Message: message
    },function (error) {
        if (error)
            console.log ('Error has occured during saving process')
        else
            console.log ("Data hss been saved succesfully")
    });
}

解决方法

好吧,导入中的斜杠和文件名之间似乎有一个空格。也许就是这样。

无论如何,您还应该使用try / catch块来处理代码中的任何异常,并将错误消息登录到Firebase控制台。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...