Запрошено несуществующее значение functions.config () - PullRequest
0 голосов
/ 22 октября 2019

Репозиторий 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 в выходной каталог транспортеров.

...