#javascript #firebase #google-cloud-functions #firebase-hosting
#javascript #firebase #google-cloud-функции #firebase-хостинг
Вопрос:
У меня есть приложение react, которое использует серверную часть firebase (firestore). Я также использую firebase hosting для размещения SPA. Мой файл firebase.json:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/",
"destination": "/index.html"
},
{
"source": "/app/**",
"function": "app"
}
]
},
"storage": {
"rules": "storage.rules"
},
"emulators": {
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"hosting": {
"port": 5000
},
"ui": {
"enabled": true
}
},
"functions": {
"source": "functions",
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint"
]
}
}
Итак, теперь я протестировал некоторые функции и хочу их развернуть. (У меня есть functions
каталог, который содержит package.json, node_modules и index.js который содержит функции) Если я просто запущу firebase deploy
, он будет развертывать сборку только из папки сборки.
Мои вопросы:
- Могу ли я развернуть SPA и функции, используя один и тот же проект firebase?
- Если да, то что я делаю не так?
- Как мне указать порт, на котором я хочу запускать функции?
- Или я должен использовать параметры маршрутизации или что-то еще?
Комментарии:
1. Можете ли вы показать файловую структуру вашего проекта Firebase? «Если я просто запущу firebase deploy, он развернет сборку только из папки сборки». => Вы уверены, что ваши функции не развернуты? Как вы это подтверждаете?
2. Ваш firebase.json не показывает конфигурацию «функций» (только «хостинг»), поэтому код облачных функций не будет развернут. Я думаю, вы предполагаете, что что-то должно произойти, когда это не настроено на это. При развертывании на хостинге Firebase в облачных функциях ничего не происходит. Они не настолько тесно интегрированы. Они по-прежнему являются отдельными продуктами с отдельными конфигурациями, которые необходимо настраивать и развертывать независимо.
3. @DougStevenson Если я не ошибаюсь, вам не нужна
functions
конфигурация вfirebase.json
файле, чтобы иметь возможность развертывать облачные функции. Только если вы хотите указать другую папку, отличную отfunctions
одной по умолчанию (или некоторыхpredeploy
параметров), вам следует добавитьfunctions
конфигурацию.4. @RenaudTarnec Вам определенно нужна конфигурация функций для развертывания. Как еще CLI узнал бы, что вы хотите сделать?
5. @DougStevenson Даг, извини, что настаиваю, я проверил, прежде чем писать приведенный выше комментарий: большинство моих проектов (с функциями) не имеют
functions
конфигурации вfirebase.json
, и я только что перепроверил с совершенно новым проектом и подтверждаю этот момент. Я согласен, это кажется странным…