Vue调用Firebase可调用云函数报then is not a function错误如何解决?
报错原因
httpsCallable 是Firebase云函数客户端SDK提供的方法,它的返回值是可执行的云函数调用实例,并不是Promise对象,你直接对返回结果调用.then()自然会抛出类型错误。你需要先执行这个返回的调用实例,才会真正触发云函数请求并得到Promise对象。
解决方法
修改你的store中reserveApt的代码如下:
reserveApt() { // 第一步:获取云函数调用实例 const callSayHi = getFirebaseFunctions().httpsCallable("sayHi"); // 第二步:执行调用实例,触发云函数请求 callSayHi() .then((result) => { // 云函数返回的内容存在result.data字段中 console.log(result.data); }) .catch((error) => { // 建议补充错误处理逻辑 console.error("云函数调用失败", error); }); },
补充说明
如果你后续调用需要传参数,直接把参数对象传入调用实例即可:
callSayHi({ name: "测试用户", id: 123 }) .then(result => console.log(result.data))
内容的提问来源于stack exchange,提问作者Hawkar Shwany
相关产品推荐
相关产品推荐

