我的项目使用的是vue框架。我已经使用firebase服务一段时间了,一切正常(firestore、实时数据库等(触发的云功能也正常工作。oncall函数也曾在很长一段时间内正常工作。问题是所有可调用的函数突然都停止了工作。我向firebase发送了一个调用某个可调用函数的调用,然后代码停止,控制台显示了一个奇怪的错误,如下所示。Firebase函数日志不显示任何日志,这意味着该函数甚至还没有启动。
这是错误:
TypeError: Cannot use 'in' operator to search for 'Notification' in undefined
at ContextProvider.eval (index.esm.js?10fa:207)
at step (tslib.es6.js?40cb:102)
at Object.eval [as next] (tslib.es6.js?40cb:83)
at eval (tslib.es6.js?40cb:76)
at new Promise (<anonymous>)
at __awaiter (tslib.es6.js?40cb:72)
at ContextProvider.getInstanceIdToken (index.esm.js?10fa:204)
at ContextProvider.eval (index.esm.js?10fa:232)
at step (tslib.es6.js?40cb:102)
at Object.eval [as next] (tslib.es6.js?40cb:83)
"在"operator"中搜索未定义的"Notification";是节点模块中的firebase代码
编辑:
调用云函数的本地函数:
async send(index) {
...
await serv_inviteMatch({invitation, myId:myUser.answers.id,
matchId:this.user.answers.id})
}
firebase/functions.js:
import Firebase from "firebase/app";
import 'firebase/functions';
...
export const serv_inviteMatch = Firebase.functions().httpsCallable('inviteMatch');
functions/index.js:
exports.inviteMatch = functions.https.onCall(async (invitationData) =>{...})
有一种特定的方法可以用来构建云函数来处理错误和承诺,例如,不需要使云函数异步。我认为您需要观看Firebase团队的系列教程,它将帮助您了解每种类型的Firebase函数是如何生成的以及如何编写它们。
你的云功能在这里似乎是异步的,所以你需要按照Firebase:的指示正确终止它
通过返回JavaScript承诺来解析执行异步处理的函数(也称为"后台函数"(。