Репозиторий GitHub с минимальным воспроизведением
https://github.com/shaunluttin/firebase-emulator-functions-firebase-bug-repo
Проблема
Мы выполняем эту команду:
firebase emulators:start
Это вывод терминала:
Non-existent functions.config() value requested!
- Path: "firebase.projectId"
- Learn more at https://firebase.google.com/docs/functions/local-emulator
Non-existent functions.config() value requested!
- Path: "app.environment"
- Learn more at https://firebase.google.com/docs/functions/local-emulator
Non-existent functions.config() value requested!
- Path: "app.origins"
- Learn more at https://firebase.google.com/docs/functions/local-emulator
У нас есть файл .runtimeconfig.json
в каталоге нашей функции Firebase, который содержит:
{
"firebase": {
"projectId": "test"
},
"app": {
"environment": "bar",
"origins": "foo"
}
}
Как мы можем заставить Firebase Emulator Suite читать наши .runtimeconfig.json
значения?
Возможная ошибка
Проблема возникает только с транспилированным выводом.
Работает с Vanilla JavaScript
const { config } = require('firebase-functions');
const admin = require('firebase-admin');
const firebaseConfig = config();
admin.initializeApp(firebaseConfig.firebase);
admin.firestore();
Сбой с прозрачным выводом Babel
"use strict";
var _firebaseAdmin = _interopRequireDefault(require("firebase-admin"));
var _firebaseFunctions = require("firebase-functions");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const firebaseConfig = (0, _firebaseFunctions.config)();
_firebaseAdmin.default.initializeApp(firebaseConfig.firebase);
_firebaseAdmin.default.firestore(); // <---- this is where it errors
Ошибка возникает, даже если мы скопировали .runtimeconfig.json
в выходной каталог транспортеров.