我已经将我的Firebase函数index.ts缩减为以下代码,当创建文档时,我在Google Cloud日志(log)中收到错误.该错误与new CloudTasksClient()有关.如果我删除它,只记录一个简单的字符串,那么当创建文档时,我看到的是记录和日志(log),没有错误.@google-cloud/任务更新.即使我只是try 在没有实例化的情况下记录logger.log('CloudTasksClient', CloudTasksClient);,我也会收到这些错误,这似乎指向了一个重要的问题,但我无论如何也找不出它是什么.有什么主意吗?

import { initializeApp } from 'firebase-admin/app';
import * as logger from 'firebase-functions/logger';
import { onDocumentCreated } from 'firebase-functions/v2/firestore';
import { CloudTasksClient } from '@google-cloud/tasks';

initializeApp();

export const onStartSession = onDocumentCreated(
    'userSessionInfo/{userId}/history/{sessionId}',
    async () => {
        const project: string = /* removed */;
        const location: string = 'us-central1';
        const queue: string = 'delay';
        const tasksClient = new CloudTasksClient();
        const queuePath = tasksClient.queuePath(project, location, queue);
        logger.log('queuePath', queuePath);
    },
);

以下是错误所在.这个类似乎是未定义的,它抛出了第二个错误,然后第一个错误来自Firebase,因为这个未定义的错误导致在创建文档时无法创建快照?

Error: Failed to decode protobuf and create a snapshot.
    at entryFromArgs (/workspace/node_modules/firebase-functions/lib/logger/index.js:130:19)
    at Object.error (/workspace/node_modules/firebase-functions/lib/logger/index.js:116:11)
    at createSnapshotFromProtobuf (/workspace/node_modules/firebase-functions/lib/common/providers/firestore.js:61:16)
    at createSnapshot (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:119:59)
    at makeFirestoreEvent (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:156:15)
    at func (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:222:32)
    at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/function_wrappers.js:113:25
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
TypeError: Cannot read properties of undefined (reading 'cloud')
    at Function.decode (/workspace/node_modules/firebase-functions/protos/compiledFirestore.js:1529:130)
    at createSnapshotFromProtobuf (/workspace/node_modules/firebase-functions/lib/common/providers/firestore.js:57:52)
    at createSnapshot (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:119:59)
    at makeFirestoreEvent (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:156:15)
    at func (/workspace/node_modules/firebase-functions/lib/v2/providers/firestore.js:222:32)

推荐答案

有一个问题正在积极调查:https://github.com/googleapis/google-cloud-node/issues/5000

https://github.com/sofisl现在似乎正在调查这件事.

一个快速的解决办法是降级到@google-Cloud/Tasksv4.0.1.

Node.js相关问答推荐

如何在Node js中从MongoDB获取特定数据,使用GET方法?

类扩展值[object object]不是构造函数或null

Node fetch 实现似乎与 Deno 和 Bun 不同,导致网站没有返回响应?

找不到模块bcryptjs

node Axios 创建全局令牌变量以在单独的变量头中使用

Electron 模板(Typescript + Webpack)中的这个 Electron Forge ERROR 是什么?

将 AllowDiskUse true 添加到 node.js 中的 MongoDB 聚合?

在 `DataFrame` 上使用用户定义的可链接函数抽象出 Polars 表达式

baseurl64 缓冲区解码

node和mongoDB聚合数据时的输入字段函数

Cassandra node.js 驱动程序有替代品吗?

MongoDB Node findone如何处理没有结果?

Puppeteer:如何提交表单?

我可以有条件地将 where() 子句添加到我的 knex 查询吗?

node.js 中存储的模块变量在什么范围内?

名称类型为 mongoose 的字段

NPM:为什么要安装这个包?

yarn 和 npm 的主要区别是什么?

expressjs app.VERB 调用中的 next() 和 next('route') 有什么区别?

用于轻松部署和更新的 Node.js 设置