javascript 无法在云函数参数中使用process.env值

rseugnpd  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(135)

我花了整整一个小时来弄清楚为什么我的函数不起作用,并将问题简化为以下简单的代码:

import {onDocumentCreated} from 'firebase-functions/v2/firestore';

export const myfunction = onDocumentCreated(
    `users/{uid}/${process.env.TEST_KEY}/{id}`,
    (event) => {
        console.log(process.env.TEST_KEY);
    }
);

.env文件包含TEST_KEY=data
如您所见,第一个参数是要“侦听”的集合的路径,并且使用了字符串文字(这不起作用)。
现在如果我把上面的改为

import {onDocumentCreated} from 'firebase-functions/v2/firestore';

export const myfunction = onDocumentCreated(
    `users/{uid}/data/{id}`,
    (event) => {
        console.log(process.env.TEST_KEY);
    }
);

然后它就像预期的那样工作了,当我在firestore中推送一个文档时,控制台会记录data
process.env.TEST_KEY在函数内部解析,但不在字符串文字中。为什么?

编辑:这似乎是firebase-functions的一个怪癖。

我发现这个GH Issue可能是相关的。

m1m5dgzv

m1m5dgzv1#

如果您已经在使用此功能并且不能正常工作,您可以在此link中提交一个错误,产品团队将对此进行调查。然而,没有ETA。
提交bug的步骤:

  • 选择相关类别并提供简明的标题。
  • 用详细步骤描述问题,并包括任何相关信息或代码片段。
  • 附加日志或错误消息(如果适用)。
  • 提交支持票证并等待响应。
  • 记住要提供尽可能多的相关信息。或者,查看Firebase文档或社区论坛以了解现有解决方案。

相关问题