我有一个我今年早些时候创建的Firebase项目。它使用云功能在实时数据库上运行某些操作。
昨天,我了解了Callable Cloud Functions,所以我决定在我的应用中尝试一下,看看我是否应该更新现有的功能。我已经为测试目的创建了一个简单的云函数:
exports.testCall = functions.https.onCall((data, context) =>{
console.log(context.auth.uid);
return {response:"This means success"};
});
但是当我尝试部署此功能时,我收到错误:
错误:解析函数触发器时出错。
TypeError:functions.https.onCall不是函数 在对象。 (/tmp/fbfn_7614ijhDwX0NY98S/index.js:114:36) 在Module._compile(module.js:649:30) at Object.Module._extensions..js(module.js:660:10) 在Module.load(module.js:561:32) 在tryModuleLoad(module.js:501:12) 在Function.Module._load(module.js:493:3) 在Module.require(module.js:593:17) at require(internal / module.js:11:18) at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11 在对象。 (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:32:3)
我知道最新的Firebase SDK中引入了Callable Cloud Functions,因此我尝试使用以下方法对其进行更新:
sudo npm install -g firebase-tools
但我还无法部署我的云功能。我已尝试部分部署,如Firebase docs所示,但它没有用。我的文档中是否缺少某些内容?
答案 0 :(得分:7)
只需更新Firebase CLI即可解决问题,因为您还必须更新项目目录中的Cloud Functions SDK。您提到Firebase项目已在今年早些时候初始化,因此可以在Callable Cloud Functions发布之前进行。
当您在Firebase项目中启动云功能时,它会创建包含Cloud Functions SDK的functions
目录。所以你(可能)仍然在functions
目录中有旧的SDK,你需要更新它。为此,请导航到该目录并运行命令:
sudo npm i --save firebase-functions@latest