首页 > 解决方案 > Firebase onWrite 未触发

问题描述

我阅读了我找到的所有答案,但我仍然有一些问题。可能与.ref()有关,但我看不出我做错了什么。我的云功能根本没有触发。

数据库示例:business/{businessId}/reservations/{reservationId}

我想在每次创建新预订时触发此功能[在预订集合中创建新文档] (business/{businessId}/reservations/)。然后我想发送一条通知消息,但那是另一回事。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

    exports.sendAdminNotification = functions.database
      .ref("business/{businessId}/reservations")
      .onWrite((event: any) => {
       // It never comes here...
        console.log('Here');

        const payload = {
          notification: {
            title: 'New registration',
            body: 'You have new registration!',
          },
        };

        // You can ignore this part
        admin
        .messaging()
        .sendToDevice('SomeToken', payload)
        .catch(function (error: any) {
          console.log('Notification sent failed:', error);
        });

      });

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

解决方案


您使用术语“文档”和“集合”这一事实表明您的数据库是 Firestore。但是你在这里写的是一个实时数据库触发器。实时数据库是一个完全不同的数据库。相反,您需要编写一个Firestore 触发器。它们以functions.firestore.


推荐阅读