#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, он работает отлично.
Возможно, именно поэтому не рекомендуется допоздна засиживаться для написания кода…