首页 > 解决方案 > Firebase 函数 onCreate 触发器错误:TypeError:无法读取未定义的属性“匹配”

问题描述

尝试使用为数据库触发的 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>

标签: firebasefirebase-realtime-databasegoogle-cloud-functions

解决方案


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

您应该将语法更改为

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

文档中所述


推荐阅读