Невозможно увидеть, что функция Firebase развернута

Я выполнил следующие шаги:

  1. Firebase CLI (интерфейс командной строки) требует Node.js и npm, которые вы можете установить, следуя инструкциям на https://nodejs.org/

    • Установка Node.js также устанавливает npm
  2. После установки Node.js и npm установите интерфейс командной строки Firebase через npm:
    npm install -g firebase-tools

    • Это устанавливает глобально доступную команду firebase. Для обновления до последней версии повторите команду
  3. Инициализируйте ваш проект:
    а. Запустите firebase login чтобы войти через браузер и аутентифицировать инструмент firebase.

    Перейдите в каталог проекта Firebase или создайте каталог.

    с. Запустите функции инициализации firebase

    • Инструмент дает вам возможность устанавливать зависимости с помощью npm. Можно безопасно отказаться, если вы хотите управлять зависимостями другим способом.
  4. Выберите связанный проект Firebase

  5. Выберите Y чтобы установить зависимости с помощью npm.

  6. Перейдите в каталог настройки функций firebase

  7. Отредактируйте файл index.js с помощью созданной вами функции

  8. Запустите firebase use --add чтобы добавить свой проект Firebase.

  9. Запустите firebase deploy --only functions для развертывания функции

После всего этого я получаю сообщение в терминале при развертывании было завершено, но в консоли Firebase, когда я нажимаю на вкладку Функции, в списке нет функций !?

Ответ 1

Быстрый совет. Убедитесь, что вы экспортируете функцию, которую вы пытаетесь развернуть, в файле index.js. Ваш проект firebase будет развернут, но облачные функции будут недоступны, если они не экспортированы.

Ответ 2

На шаге 7 вы должны раскомментировать функцию выборки и сохранить файл. Затем в выводе команды deploy вам будет предоставлен URL-адрес созданной функции helloWorld.

Ответ 3

Убедитесь, что вы сохранили файл после раскомментирования функции по умолчанию, а затем используйте

firebase deploy

Ответ 4

Убедитесь, что вы используете хотя бы версию 3.5.0 firebase-tools. Чтобы проверить, какая версия у вас есть, запустите:

firebase --version

Если вы используете настройку по умолчанию, вы можете обновить firebase-tools, используя:

npm install -g firebase-tools

Ответ 5

У меня была точно такая же проблема, и я решил ее, убедившись, что файл index.js, содержащий все мои функции, был сохранен в папке "функции" внутри папки проекта. Я использую vs-код, поэтому я просто нажал на файл/сохранить как и выбрал правильную папку.

Ответ 6

Недавно я столкнулся с той же проблемой, выполняя Действия в Руководстве по миграции клиентской библиотеки Google Node.js версии 1. в Node.js Client Library V2 (что я очень рекомендую) Мне понадобилось время, чтобы понять, что происходит. На самом деле я не мог понять, в чем проблема! Итак, вот что я сделал, и это сработало для меня:

  1. Убедитесь, что у вас есть резервная копия ваших облачных функций (index.js) и, возможно, ваш package.json (на тот случай, если вы не хотите помнить, какие пакеты вы ранее установили - иногда это может раздражать).

  2. Удалите весь каталог функций из папки вашего проекта.

  3. Перезапустите firebase CLI с помощью firebase init и выберите " Функции".

  4. После того, как ваша функция облака инициализирована, CD в папку функций и развернуть его с помощью firebase deploy --only functions.

  5. Если все идет хорошо you, вы должны увидеть, как ваша функция развернута на консоли панели управления firebase.

Примечание: Google недавно выпустил Node.js Client Library version 2 (v2) 16 апреля 2018 года с множеством новых функций. После 16 апреля 2018 года новые функции в Действиях в Google больше не будут добавляться в v1 клиентской библиотеки. Если вы хотите использовать новые функции, вы должны перейти на клиентскую библиотеку v2.

Кроме того, клиентская библиотека v1 не поддерживает Dialogflow v2. Если вам нужна функциональность Dialogflow v2, вам также необходимо перейти на v2 клиентской библиотеки.

Надеюсь, это поможет 👍.

Ответ 7

Чтобы прояснить одну проблему - кажется, что ваш файл index.js внутри папки functions должен экспортировать функции, созданные в том же файле (аналогично тому, что сказал Фрэн).

Кажется, пытается организовать файлы в подпапках не будут работать должным образом с Firebase функциями - одни и те же правила применяются для использования firebase serve для тестирования локально (необходимо создать codeinside functions/index.js).

Надеюсь, это поможет кому-то!

Ответ 8

1) Убедитесь, что вы экспортируете функцию, которую пытаетесь развернуть в своем файле index.js.

2) Напишите "use-strict" вверху вашего файла (index.js), а затем используйте консоль для развертывания вашей функции.

Ответ 9

Проверьте ваш "проект по умолчанию" в initbase firebase. Выбор с похожим именем был моей ошибкой. ;)

Ответ 10

Была такая же ситуация. Проблема была в том, что когда я делал

$ firebase deploy --only "myFunction" 

Имя этого фильтра: myFunction, не совпадало с именем функции, которую я пытался развернуть. Глупая ошибка, но мне потребовался день, чтобы понять...

Ответ 11

Используйте firebase projects:list и firebase use <project>, чтобы убедиться, что "текущий проект" Firebase CLI настроен правильно, независимо от того, в какой папке вы находитесь.

Пример:

> firebase projects:list
  ✔ Preparing the list of your Firebase projects
  ┌──────────────────────┬─────────────────────┬──────────────────────┐
  │ Project Display Name │ Project ID          │ Resource Location ID │
  ├──────────────────────┼─────────────────────┼──────────────────────┤
  │ alpha                │ alpha     (current) │ [Not specified]      │
  ├──────────────────────┼─────────────────────┼──────────────────────┤
  │ beta                 │ beta                │ [Not specified]      │
  └──────────────────────┴─────────────────────┴──────────────────────┘

  2 project(s) total.

> firebase use beta
  Now using project beta