【发布时间】:2021-10-20 14:18:39
【问题描述】:
我编写了一堆部署为 Firebase 函数的代码。其中一些可以替换为对可执行 CLI 的简单调用。即cat x | xargs ... 但该函数的许多代码仍然需要存在才能处理结果。有没有办法让 Firebase 函数在 CLI 上执行某些操作,如下所示:
const { exec } = require("child_process");
exec("ls -la", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
我的函数代码在nodejs中。
【问题讨论】:
-
这里的措辞令人困惑:您提到,在您看来,“[The firebase function] 可以用一个简单的调用替换”,但随后立即遵循该声明“仍然需要存在很多该函数的代码来处理结果”,这在我看来是相互矛盾的。它是哪一个?无论如何,为什么这些信息与核心问题相关?
-
您可以像通常期望的节点进程一样在 Cloud Functions 中执行命令。没有什么特别的事情发生。该命令必须存在。如果您的问题实际上是在询问为什么您的代码不起作用,那么这里没有足够的信息可以说明。我们需要一个完整的复制。
-
@esqew 谢谢!我知道我措辞不好,但我不知道在哪里。
-
@DougStevenson 问题是该命令不是本机安装的(它是一个带有 CLI 的节点应用程序)。我将如何安装它?请记住,我在这里谈论的是 Firebase 函数。
-
您可以使用
spawn调用现有的二进制文件,例如我们在转换图像的示例中这样做:github.com/firebase/functions-samples/blob/main/convert-images/…。您可以将自定义二进制文件包含到您的 Cloud Functions 部署中。在此处查看一些示例:serverfault.com/q/993790 和此处:stackoverflow.com/a/60256010 和此处:stackoverflow.com/a/42777596。
标签: node.js firebase google-cloud-functions