3

我有一个今年早些时候创建的 Firebase 项目。它使用 Cloud Functions 在实时数据库上运行一些操作。

昨天,我了解了Callable Cloud Functions,所以我决定在我的应用程序中尝试一下,看看我是否应该更新我现有的 Functions 。我创建了一个简单的云函数用于测试目的:

exports.testCall = functions.https.onCall((data, context) =>{
    console.log(context.auth.uid);
    return {response:"This means success"};
});

但是当我尝试部署这个功能时,我得到了错误:

错误:解析函数触发器时出错。

TypeError:functions.https.onCall 不是 Object 的函数。(/tmp/fbfn_7614ijhDwX0NY98S/index.js:114:36) 在 Module._compile (module.js:649:30) 在 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) 在 require ( internal/module.js:11:18) 在 /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11 在 Object. (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:32:3)

我知道最新的 Firebase SDK 中引入了 Callable Cloud Functions,所以我尝试使用以下方法更新它:

sudo npm install -g firebase-tools

但我还不能部署我的云功能。我也尝试了部分部署,如Firebase 文档中所示,但没有成功。我在文档中遗漏了什么吗?

4

1 回答 1

8

简单地更新您的 Firebase CLI 并不能解决问题,因为您还必须更新项目目录中的 Cloud Functions SDK。您提到 Firebase 项目已在今年早些时候初始化,所以那是在 Callable Cloud Functions 发布之前。

请看,当您在 Firebase 项目中初始化 Cloud Functions 时,它会创建functions包含 Cloud Functions SDK 的目录。所以你(可能)在目录中仍然有旧的 SDK,functions你需要更新它。为此,请导航到该目录并运行以下命令:

sudo npm i --save firebase-functions@latest
于 2018-03-22T20:10:44.447 回答