Javascript Firebase函数无法在应用程序中使用oncall函数,返回内部错误 Firebase功能全部不工作 我最近关注了YouTube频道《网络忍者》的Firebase教程系列。

Javascript Firebase函数无法在应用程序中使用oncall函数,返回内部错误 Firebase功能全部不工作 我最近关注了YouTube频道《网络忍者》的Firebase教程系列。,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我被困在firebase函数部分,首先我甚至无法部署它们,因为我的帐户中启用了计费,然后我将package.json中的节点版本设置为“8”,当我部署函数时,它没有要求计费 package.json { “名称”:“功能”, “说明”:“Firebase的云功能”, “脚本”:{ “lint”:“eslint.”, “服务”:“firebase仿真器:启动--仅限函数”, “shell”:“firebase函数:shell”, “开始”:“npm运行shell”, “部署”:“firebase部

我被困在firebase函数部分,首先我甚至无法部署它们,因为我的帐户中启用了计费,然后我将package.json中的节点版本设置为“8”,当我部署函数时,它没有要求计费

package.json

{
“名称”:“功能”,
“说明”:“Firebase的云功能”,
“脚本”:{
“lint”:“eslint.”,
“服务”:“firebase仿真器:启动--仅限函数”,
“shell”:“firebase函数:shell”,
“开始”:“npm运行shell”,
“部署”:“firebase部署--仅功能”,
“日志”:“firebase函数:日志”
},
“发动机”:{
“节点”:“8”
},
“main”:“index.js”,
“依赖项”:{
“firebase管理员”:“^8.10.0”,
“firebase函数”:“^3.6.1”
},
“依赖性”:{
“eslint”:“^5.12.0”,
“eslint插件承诺”:“^4.0.1”,
“firebase功能测试”:“^0.2.0”
},
“私人”:真的吗
}
早些时候
“节点”:“10”

在此之后,我可以部署函数,甚至可以运行一个onRequest函数,但不能运行onCall函数。 每当我试图调用一个onCall函数时,我都不知道会发生什么,也许我会遇到一个不确定的错误

index.js firebase函数文件

const functions=require('firebase-functions');
exports.randomNumber=functions.https.onRequest((请求,响应)=>{
const number=Math.round(Math.random()*100);
控制台日志(编号);
response.send(number.toString());
});
exports.sayHello=functions.https.onCall((数据、上下文)=>{
console.log(“其运行”);
返回“你好,忍者”;
});
randomNumber运行得很好,但是,sayHello从未运行过。 我正在从前端调用sayHello函数

app.js我的web应用的javascript文件

//sayHello函数调用
const button=document.querySelector('.call');
按钮。addEventListener('单击',()=>{
//获取firebase函数引用
const sayHello=firebase.functions().httpscalable('sayHello');
sayHello()。然后(结果=>{
console.log(result.data);
}).catch(错误=>{
console.log(错误);
});
});
我还在index.html中正确初始化firebase


在我的web应用程序的控制台中,会记录一些内容

Error: internal
    at new y (error.ts:66)
    at w (error.ts:175)
    at A.<anonymous> (service.ts:245)
    at tslib.es6.js:100
    at Object.next (tslib.es6.js:81)
    at r (tslib.es6.js:71)
错误:内部错误
在新的y(错误:66)
在w(错误:175)
在A


我发现SDK版本7.21.1破坏了javascript web客户端的可调用函数。如果您降级到7.21.0,它应该可以正常工作。最新的7.22.0版本似乎仍处于崩溃状态

如果你想跟踪它,这是一个很好的例子


更新2020年10月5日:显然这在7.22.1中已经修复。

是的,我试过了,把它降级到7.21.0,它就成功了。多谢了,道格·史蒂文森,我正要去做苏西德。我有一个Electron应用程序,正在将其移动到Firebase托管的Web上,只想将所有HTTP触发器功能移动到可调用的功能上。。。3天来我一直在挠头。。即将回滚对http Trigger的所有更改,并看到以下内容…:)
<!-- The core Firebase JS SDK is always required and must be listed first -->
    <script src="/__/firebase/7.21.0/firebase-app.js"></script>
    <!-- include only the Firebase features as you need -->
    <script src="/__/firebase/7.21.0/firebase-auth.js"></script>
    <script src="/__/firebase/7.21.0/firebase-firestore.js"></script>
    <script src="/__/firebase/7.21.0/firebase-functions.js"></script>

    <!-- Initialize Firebase -->
    <script src="/__/firebase/init.js"></script>