Использование локального эмулятора - Firebase Serve - Ошибка: объект сертификата должен быть объектом - PullRequest
0 голосов
/ 06 сентября 2018

Цель

Используйте эмулятор firebase и локально разверните облачные функции firebase для тестирования и отладки.

Выпуск

При запуске firebase serve происходит сбой с - Error: Certificate object must be an object.

Что было перепробовано

В соответствии с документацией Google здесь инструкции включают эти шаги:

Чтобы настроить учетные данные администратора для эмулируемых функций (кроме Cloud) База данных Firestore и Realtime):

  1. Откройте панель «Учетные записи служб» в Google Cloud Console.

  2. Убедитесь, что выбрана учетная запись службы App Engine по умолчанию, и используйте меню параметров справа, чтобы выбрать Создать ключ.

  3. При появлении запроса выберите JSON для типа ключа и нажмите кнопку Создать. Установите Google по умолчанию учетные данные, указывающие на загруженный ключ:

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"

    $ firebase functions:shell

    OR

    $ firebase serve --only functions

Выполнение этих инструкций и запуск firebase serve ... завершаются неудачно. Вот журналы:

Silver-Sliver:functions dchaddportwine$ firebase serve --only functions

=== Serving from '/Users/dchaddportwine/Sites/people-is-cloud-functions/functions'...

i  functions: Preparing to emulate functions.
Warning: You're using Node.js v8.11.1 but Google Cloud Functions only supports v6.11.5.
⚠  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
⚠  functions: Error from emulator. Error occurred while parsing your function triggers.

Error: Certificate object must be an object.
    at FirebaseAppError.FirebaseError [as constructor] (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/utils/error.js:39:28)
    at FirebaseAppError.PrefixedFirebaseError [as constructor] (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/utils/error.js:85:28)
    at new FirebaseAppError (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/utils/error.js:119:28)
    at new Certificate (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/auth/credential.js:106:19)
    at new CertCredential (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/auth/credential.js:189:64)
    at Object.cert (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/node_modules/firebase-admin/lib/firebase-namespace.js:220:58)
    at Object.<anonymous> (/Users/dchaddportwine/Sites/people-is-cloud-functions/functions/index.js:21:32)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)

Вопрос

Как мне исправить эти две ошибки?

  1. У меня установлены firebase-функции, и я попробовал npm i --save firebase-functions

    ⚠ functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.

  2. Думаю, что это связано с GOOGLE_APPLICATION_CREDENTIALS, но я не уверен, как проверить или проверить, что здесь происходит.

    ⚠ functions: Error from emulator. Error occurred while parsing your function triggers.

Ошибка: объект сертификата должен быть объектом.

UPDATE

Далее в документации написано:

Если вы используете переменные конфигурации пользовательских функций, запустите Следующая команда в каталоге функций вашего проекта перед работает пожарная база.

firebase functions:config:get > .runtimeconfig.json

После выполнения этой команды я больше не получаю ошибку сертификата. Woot! Тем не менее, я получаю новые сбои и не много подсказок из журналов.

=== Serving from '/Users/dchaddportwine/Sites/people-is-cloud-functions/functions'...

i  functions: Preparing to emulate functions.
i  hosting[development-is]: Serving hosting files from: ./
✔  hosting[development-is]: Local server: http://localhost:5000
Warning: You're using Node.js v8.11.1 but Google Cloud Functions only supports v6.11.5.
⚠  functions: Failed to emulate app
⚠  functions: Failed to emulate helloSlack
⚠  functions: Failed to emulate helloIssy
⚠  functions: Failed to emulate interactiveIssy
i  functions: No HTTPS functions found. Use firebase functions:shell if you would like to emulate other types of functions.

Код

Вот функции облачной базы для helloSlack

exports.helloSlack = functions.https.onRequest((req, res) => {
  if (req) {
    res.status(200).send(req.body);
  } else {
    console.log("req Error...");
    throw res.status(500);
  }
});

1 Ответ

0 голосов
/ 07 сентября 2018

Ответ

Далее в документации написано:

Если вы используете переменные конфигурации пользовательских функций , запустите Следующая команда в каталоге функций вашего проекта перед работает пожарная база.

firebase functions:config:get > .runtimeconfig.json

В этом проекте используются переменные конфигурации пользовательских функций . Итак, после запуска команды config я больше не получаю ошибку сертификата. Woot!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...