Нет консоли.вывод журнала в консоли firebase для облачных функций, написанных на Typescript

#typescript #firebase #google-cloud-functions

#typescript #firebase #google-cloud-функции

Вопрос:

Я использовал Typescript для написания некоторых облачных функций Firebase, как показано ниже:

index.ts

 export * from "./Module1";
  

Module1.ts

 import * as functions from "firebase-functions";

export const test = functions.https.onRequest(
  (request, response) => {
     console.log("Hello");
  }
);
  

А затем используйте firebase deploy для компиляции кода в Javascript и загрузки их. Весь процесс развертывания прошел без ошибок. Но скомпилированныйModule1.js в lib каталоге нет console.log() строки:

Module1.js

 "use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const functions = require("firebase-functions");

exports.test = functions.https.onRequest((request, response) => {
}
  

Затем я проверил в своей консоли firebase, не было вывода журнала для строки console.log("Hello"); . Я предполагаю, что tsc может быть отключено console.log() , но это всего лишь предположение. Я до сих пор не знаю, почему это произошло. Мой tsconfig.json выглядит следующим образом:

tsconfig.json

 {
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2015",
    "resolveJsonModule": true,
    "esModuleInterop": true
  },
  "compileOnSave": true,
  "include": ["src"]
}

  

Кто-нибудь может мне помочь с этим?

Комментарии:

1. Я протестировал ваш пример, и у меня появилось «привет». У вашей функции будет тайм-аут, потому что в конце нет res.send() , но это не должно вызывать эту проблему. Какую версию командной строки Firebase и облачных функций вы используете?

2. Я использую firebase 6.5.0 и firebase functions 2.2.0. Сохранит ли компиляция Typescript tsc console.log() строку или использует другие механизмы для разделения функции журнала?

3. Привет, Джен, я нашел проблему… Какой я глупый. В моем коде я записал console.log("Hello") в другой файл Module2.ts… Спасибо за время и извините за неудобства…

Ответ №1:

Какой я глупый. В моем локальном коде я записал console.log("Hello") в другой файл Module2.ts, не заметив этого… Спасибо за время и извините за неудобства…

После переноса его в Module1.ts, он работает отлично.

Возможно, именно поэтому не рекомендуется допоздна засиживаться для написания кода…