【问题标题】:firebase callable function won't invokefirebase 可调用函数不会调用
【发布时间】:2021-08-09 16:00:47
【问题描述】:

我的项目正在使用 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)

“在 undefined 中搜索 'Notification' 的 'in' 运算符”是节点模块中的 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');

函数/index.js:

exports.inviteMatch = functions.https.onCall(async (invitationData) =>{...})

【问题讨论】:

  • 您能分享更多您为调用此函数而编写的代码吗?也可以使用@我的用户名进行通知,否则我们将无法看到您的评论回复
  • @Abhishek 谢谢,我在问题中添加了一些代码。现在清楚了吗?
  • 嘿,看来您只需要遵循有关编写异步函数的 firebase 教程,终止它们可能会很棘手。他们需要适当的承诺条款。观看我在答案中给出的视频,它将帮助您了解功能

标签: javascript firebase vue.js google-cloud-functions


【解决方案1】:

应该使用一种特定的方式构建云函数来处理错误和承诺,例如,不需要使云函数异步。我认为您需要观看tutorial series from Firebase team,它将帮助您了解每种类型的 firebase 函数是如何制作的以及如何编写它们。

您的云功能在这里似乎是异步的,因此您需要 terminate it properly Firebase 告知:

通过返回 JavaScript 承诺来解析执行异步处理的函数(也称为“后台函数”)。

【讨论】:

  • 谢谢@abhishek,前几天我创建的函数运行良好。我不认为需要在代码中更改任何内容。它看起来更像是一个包版本的东西吗?
  • @chaimthee 你昨天做了改变吗?可能是代码或包中的更改之一可能导致错误,firebase 函数没有在本地编译,这意味着服务器编译它们,以便将错误缩小到客户端代码
猜你喜欢
  • 1970-01-01
  • 2018-10-21
  • 2020-04-27
  • 2021-09-16
  • 2018-09-17
  • 2018-09-03
  • 2020-02-09
  • 2020-11-24
  • 2020-05-17
相关资源
最近更新 更多