我在尝试直接调用Firebase Cloud函数时遇到以下错误:
Error: internal
at new HttpsErrorImpl (error.ts:65)
at _errorForResponse (error.ts:175)
at Service.<anonymous> (service.ts:276)
at step (tslib.es6.js:102)
at Object.next (tslib.es6.js:83)
at fulfilled (tslib.es6.js:73)
我注意到,用户在过去也看到过类似的问题,Firebase版本7.22.0导致了这种问题,它在7.22.1中得到了解决,但我使用的是8.3.0,所以这应该不是问题。
我的云函数从未被触发,我在Firebase函数日志中没有看到任何错误。
这是我的客户端功能:
async function testCallFunction() {
const callTest = functions.httpsCallable('callTest');
return await callTest({ companyId: coRef })
.then((result) => {
console.log(result)
}).catch(err => {
console.log(err)
})
}
这是我的云功能:
exports.callTest = functions.https.onCall((data, context) => {
console.log('Call Test Fired')
return admin.firestore().collection('users').doc(context.auth.uid).get()
.then((doc) => { return doc.data()})
.catch(err => {throw new functions.https.HttpsError(err.message)})
})
但它从来没有到达云功能,我只得到内部错误,在云功能日志中没有日志。
我不确定我做错了什么?我已经确保我使用的是最新的firebase JS SDK(8.3.0(,我已经尽可能地接近文档。有什么明显的我做错了吗?
感谢
在使用AngularFireFunctions httpsCallable方法时,我看到了完全相同的症状。最近将firebase-sdk从8.2.4更新到8.3.1,我怀疑这引入了https可调用的内部错误。降级到8.2.4解决了问题:
npm安装firebase@8.2.4--保存