尝试部署具有针对数据库触发的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>
答案 0 :(得分:1)
您正在使用onCreate((event) => {})
使用Cloud Functions的“旧”语法(Firebase SDK for Cloud Functions的1.0.0版之前),并且项目中的SDK版本是1.1.0版。
您应将语法更改为
.onCreate((snap, context) => {})
中所述
答案 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