每当我运行“ firebase部署-仅功能”时,都会出现此错误 解析函数触发器时发生错误。
TypeError:函数.https.onCall(...)。然后不是函数 在对象。 (C:\ Users \ Lenovo \ Desktop \ Firebase Revision \ functions \ index.js:11:4) 在Module._compile(内部/模块/cjs/loader.js:1158:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:1178:10) 在Module.load(internal / modules / cjs / loader.js:1002:32) 在Function.Module._load(internal / modules / cjs / loader.js:901:14) 在Module.require(internal / modules / cjs / loader.js:1044:19) 在要求时(内部/模块/cjs/helpers.js:77:18) 在C:\ Users \ Lenovo \ AppData \ Roaming \ npm \ node_modules \ firebase-tools \ lib \ triggerParser.js:15:15 在对象。 (C:\ Users \ Lenovo \ AppData \ Roaming \ npm \ node_modules \ firebase-tools \ lib \ triggerParser.js:53:3) 在Module._compile(internal / modules / cjs / loader.js:1158:30)
以下是我在index.js函数中的代码
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.addAdminRole = functions.https.onCall((data,context) => {
return admin.auth().getUserByEmail(data.email).then(user => {
return admin.auth().setCustomUserClaims(user.uid,{
admin: true
});
})
}).then(()=>{
return {
message: `Success! ${data.email} has been made an admin`
}
}).catch(err => {
return err;
})
答案 0 :(得分:0)
您没有正确地链接then()
方法。您应该执行以下操作:
exports.addAdminRole = functions.https.onCall((data, context) => {
return admin.auth().getUserByEmail(data.email)
.then(user => {
return admin.auth().setCustomUserClaims(user.uid, {
admin: true
});
})
.then(() => {
return {
message: `Success! ${data.email} has been made an admin`
}
}).catch(err => {
return err;
})
})
请注意,不要这样做
.catch(err => {
return err;
})