首页 > 解决方案 > Firebase/Cloud 功能不会在实时数据库删除时触发事件

问题描述

我正在尝试使用以下方法监听子集合上的删除:

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
console.log('listen for delete');
exports.sendActivityChangeNotification = functions.database.ref('/games/{gameId}/attendees/{attdendeeId}')
.onDelete(async (change, context) => {
  const gameId = context.params.gameId;
  const attdendeeId = context.params.attdendeeId;
  console.log(`activityId ${activityId} attdendeeId ${attdendeeId}` );
}

在路径 '/games/{gameId}/attendees/{attdendeeId}' 中,games 是父集合,gameId 是文档,而参加者是我想要在删除文档时收听的集合。

这甚至可能吗?这是我第一次使用函数。我确实确保使用部署函数后存在的新数据进行测试。

感谢您的任何建议!

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

解决方案


您的代码访问实时数据库,但您使用了 Firestore 术语“集合”和“文档”。

实时数据库和 Cloud Firestore 是完全不同的产品。确保为正在使用的数据库编写正确类型的触发器。如果您使用 Firestore,请编写 Firestore 触发器


推荐阅读