我仍然无法确定这些功能通常是如何工作的。对于项目,我创建了一个函数,只要调用该函数的URL就会调用该函数。此后,被调用函数还使用一个实用程序函数。该函数已被多次使用,所以我只觉得在单独的函数中创建它们是明智的,尽管在部署后每当使用该函数时,都会出现此错误。
TypeError: this.isMM is not a function
at exports.addOrder.functions.https.onRequest (/user_code/index.js:130:11)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9)
at /var/tmp/worker/worker.js:783:7
at /var/tmp/worker/worker.js:766:11
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
我只有一个文件index.js
,我在其中放置了所有函数,尽管我不确定为什么不读取上述函数isMM()
。下面是相关的代码块(为简单起见,我已替换了函数的内容。
exports.addOrder = functions.https.onRequest((req, res) => {
var newValue = req.query.my_info;
var anotherValue = req.query.another_info;
var my_info = this.isMM(newValue);
if(my_info){
var another_info = this.isMM(anotherValue);
if(another_info){
doThis();
}
}
});
isMM = (toCheck) => {
if(toCheck === 'someString'){
return true;
}
return false;
}
我希望在addOrder中使isMM可读,因为这是我需要为该项目反复执行的事情。
答案 0 :(得分:2)
只需执行以下操作,就不要使用this
。
var my_info = isMM(newValue);
if(my_info){
var another_info = isMM(anotherValue);
if(another_info){
doThis();
}
}