【问题标题】:Logging a JSON object in firebase console在 Firebase 控制台中记录 JSON 对象
【发布时间】:2023-03-18 05:17:02
【问题描述】:

有谁知道如何以可读的方式将 JSON 数据记录到 firebase 日志中?使用时:

console.log(req.body)

console.log(`${req.body.event}: ${JSON.stringify(req.body, null, 2)}`);

它在多行上打印如下图所示。

我的 firebase 云函数在 Node 10 上运行

【问题讨论】:

  • 这很奇怪——一个console.log 语句应该会导致一个日志记录到在线控制台。请展示你的全部代码好吗?
  • 另外,如果上面的账户 id 不只是一个虚拟账户,您不妨考虑将其编辑以保护隐私。
  • 不熟悉 Firebase,但如果您想以友好的方式 console.log() 您的数据,也许 console.table 有助于以可读方式显示数据。
  • 我也有这个问题,它是在我们更新到 firebase 函数中的节点 10 之后开始的。现在只记录一个 POJO 在对象中的每个“行”输出一行
  • 更新到节点10后也出现这个问题,节点8完美记录

标签: javascript firebase google-cloud-functions


【解决方案1】:

FWIW,在我的 Firebase 函数上使用 NodeJS 8 时,我看不到这种日志记录行为。因此,Firebase 端的 Node 10 发生了一些变化…… 还要检查这个 GitHub 问题:https://github.com/firebase/firebase-functions/issues/612

【讨论】:

  • 这似乎与节点版本有关。自从从 v8 更新到 v10 后,我就看到了。
【解决方案2】:

我可以确认我有同样的问题,因为对 Node 10 JSON 对象的更新打印在多行中。

目前的解决方案是导入这个依赖:

require('firebase-functions/lib/logger/compat');

只需将其放在函数代码的顶部即可。

您可以查看官方问题以获取更新:https://github.com/firebase/firebase-functions/issues/612

【讨论】:

    【解决方案3】:

    您应该将functions.logger.log() 与 Node 版本 10 及更高版本一起使用。见:https://firebase.google.com/docs/functions/writing-and-viewing-logs

    【讨论】:

      【解决方案4】:

      这种多行行为可能是由于您明确告诉 JSON.stringify() 添加换行符和缩进。最后一个参数 (2) 告诉 JSON 格式化程序您想要“结构化”(又名“漂亮”)输出,每个缩进级别有 2 个空格。如果你放弃最后一个参数(你也可以安全地放弃“null”),那么你应该会看到一个很好的旧的长字符串:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-31
        • 2020-07-30
        • 2017-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        • 2011-11-23
        相关资源
        最近更新 更多