真实的查看Firebase函数的日志

w80xi6nr  于 2023-10-22  发布在  其他
关注(0)|答案(7)|浏览(203)

我正在使用firebase函数,这是我第一次使用node。
我的问题很简单,至少我是这么认为的。
我创建了一个简单的函数,从理论上讲,如果一个新的字段被添加到数据库中,这个函数必须做出React。
我的代码如下:

const functions = require('firebase-functions');

'use strict';

exports.newItem = functions.database.ref('/test')
  .onCreate((snapshot, context) => {

    snapshot = change.after;
    const val = snapshot.val();

    console.log('i´m alive');

    return null;
  })

;

我正在寻找在哪里可以看到我在“newItem”函数中的日志是否显示。
正如我所读到的,我使用“firebase函数:log”,但这将返回以前的日志,而不是真实的时间。
我也看到了使用:gcloud函数读取日志,正如我在这里读到的。
但它总是返回:-bash:gcloud:我已经安装了“gcloud functions”,但我还是迷路了。
我觉得如果这个问题没有得到很好的解释,但总之,我寻找一个控制台,在那里可以看到真实的时间日志,就像它做intelij或android工作室与标签logcat。
我将感谢初学者的解释。
提前感谢和问候。

uplii1fm

uplii1fm1#

您还可以在console/cmd中查看已部署函数的日志:

使用Firebase CLI

要使用firebase工具查看日志,请使用functions:log命令:

firebase functions:log

要查看特定函数的日志,请提供函数名称作为参数:

firebase functions:log --only <FUNCTION_NAME>

有关日志查看选项的完整范围,请查看函数的帮助:log:

firebase help functions:log

https://firebase.google.com/docs/functions/writing-and-viewing-logs#viewing_logs

pbossiut

pbossiut2#

您可以使用Firebase console查看真实的日志。选择您的项目,单击左侧的Functions产品,然后单击"函数“选项卡。

7d7tgy0s

7d7tgy0s3#

对于我们这些喜欢CLI版本的人

npx firebase-logging --project=YOUR_PROJECT --freq=1500

这将从Firebase获取日志,每1.5秒刷新一次。感谢Geoffery和他的答案,为了灵感。

vwhgwdsa

vwhgwdsa4#

日志可以在Firebase控制台(Functions -> functions)中查看,但是由于详细信息隐藏在 accordion 扩展中,因此很难查看。
使用CLI,您可以使用“-n”参数指定要返回的行数:
firebase functions:log -n 100
您还可以通过不断获取日志并打印出新条目来模拟真实的时间日志。
https://github.com/fireRun-io/firebase-logging

const cmd = require("node-cmd");
const argv = require("yargs").argv;

let last = [];
const project = argv.project ? `--project ${argv.project}` : "";
const lines = argv.lines ? argv.lines : 100;

if (argv.h) {
  console.log(
    "Format: node firebase-logging.js --project=[projectId] --n=[number of lines]"
  );
  return;
}

const getLogs = () => {
  cmd.get(
    `firebase ${project} functions:log -n ${lines}`,
    (err, data, stderr) => {
      if (err) {
        console.error(err);
      }

      const splitData = data.trim().split("\n");
      const diff = splitData.filter((x) => !last.includes(x));

      if (diff.length > 0) {
        console.log(diff.join("\n"));
      }

      last = [...splitData];
    }
  );
};

getLogs();
setInterval(() => {
  getLogs();
}, 2000);
8yparm6h

8yparm6h5#

根据官方文件;

const functions = require("firebase-functions");

functions.logger.log("Hello from info. Here's an object:", someObj);

这将在仿真控制台或Firebase控制台的Functions -> Options选项卡中创建一个条目。
https://firebase.google.com/docs/functions/writing-and-viewing-logs#logger-sdk

vc6uscn9

vc6uscn97#

Cloud SDK支持Live Tailing。

gcloud alpha logging tail

https://cloud.google.com/logging/docs/reference/tools/gcloud-logging#live-tailing

相关问题