Firebase函数onCreate触发器错误:TypeError:无法读取未定义的属性“ match”

时间:2018-08-28 07:20:12

标签: firebase firebase-realtime-database google-cloud-functions

尝试部署具有针对数据库触发的OnCreate的功能,但它始终向我返回此错误。这是简单的代码和错误响应:

只是无法弄清楚为什么匹配未定义错误?

模块版本:

nodejs: Version 8.11.3
Function : deployed with node 8 runtime version. 
"firebase": "^5.3.0"
"firebase-admin": "^5.12.1"
"firebase-functions": "^1.1.0"
"typescript": "^2.5.3"

代码:

import functions = require('firebase-functions');
import admin = require('firebase-admin');
exports.functionName = functions.database.ref('/user/{uid}/email').onCreate((snap, context) => {
    console.log(snap.val());
});

问题更新:这是最新和最新的代码。我正在尝试获取新添加的对象的详细信息。

错误,firebase数据库中向用户添加了一个新元素:

TypeError: Cannot read property 'match' of undefined
    at resourceToInstanceAndPath (/srv/node_modules/firebase-functions/lib/providers/database.js:154:26)
    at dataConstructor (/srv/node_modules/firebase-functions/lib/providers/database.js:122:38)
    at Object.<anonymous> (/srv/node_modules/firebase-functions/lib/cloud-functions.js:89:32)
    at Generator.next (<anonymous>)
    at /srv/node_modules/firebase-functions/lib/cloud-functions.js:28:71
    at new Promise (<anonymous>)
    at __awaiter (/srv/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
    at cloudFunction (/srv/node_modules/firebase-functions/lib/cloud-functions.js:82:36)
    at /worker/worker.js:728:24
    at <anonymous>

4 个答案:

答案 0 :(得分:1)

您正在使用onCreate((event) => {})使用Cloud Functions的“旧”语法(Firebase SDK for Cloud Functions的1.0.0版之前),并且项目中的SDK版本是1.1.0版。

您应将语法更改为

.onCreate((snap, context) => {})

documentation

中所述

答案 1 :(得分:0)

我也有这个问题,我相信它与在Firebase函数中使用node8有关。至少多数民众赞成在最后一个重大变化。

答案 2 :(得分:0)

我遇到了这个问题,发现我的Cloud Function触发事件类型(写)和我对firebase.database.ref('...').onChange(...)的调用不匹配。一旦我将通话切换到firebase.database.ref('...').onWrite(...),一切都很好!

我有一个愚蠢的错误。希望这对其他人有帮助!

答案 3 :(得分:0)

在部署时,我遇到了同样的错误:

  

⚠函数:您必须具有以下版本的firebase-functions版本:   至少2.0.0。请在运行npm i --save firebase-functions @ latest   功能文件夹。

我安装了最新的firebase-functions版本之后。

所以我的解决方法是:

  

npm i-保存firebase-functions @ latest