Firestore onDocumentWritten 触发器未在使用节点的 Cloud Functions 中进行文档写入时触发

问题描述 投票:0回答:1

我正在构建一个 Firebase 项目,每当在特定 Firestore 集合中创建文档时,我都需要运行云函数。我将 Node.js 与 Firebase Admin SDK 结合使用,并设置了 Firebase 函数。其他一切都工作正常,但我无法在特定 Firestore 路径创建文档时触发该功能

这是我的代码:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const serviceAccount = require("./serviceAccount.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
});

exports.testFunction = functions.firestore
    .onDocumentWritten("Test/{docId}", (change, context) => {
        /* ... */
        console.log('Written to Test');
    });

当我向 Test 集合添加新文档时,testFunction 没有按预期触发。我打算让这个函数在每次在此路径中创建文档时执行并记录“Written to Test”。

任何人都可以帮助我理解为什么这个触发器没有触发并建议我如何解决这个问题吗?

node.js firebase google-cloud-firestore google-cloud-functions firebase-admin
1个回答
0
投票

来自关于 在 Cloud Functions 中使用

console.log
的 Firebase 文档

从函数进行日志记录的推荐解决方案是使用适合您平台的记录器 SDK。使用 Node.js,您可以使用标准 JavaScript 日志记录调用,例如

console.log
console.error
,但是 您首先需要一个特殊的模块来修补标准方法才能正常工作

require("firebase-functions/logger/compat");

一旦您需要记录器兼容性模块,您就可以在代码中正常使用

console.log()
方法:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
© www.soinside.com 2019 - 2024. All rights reserved.