Функции Firebase: маршрутизировать каждый URL через функцию и обслуживать с «хостинга» - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь получить каждый URL в поддомене для маршрутизации через функцию firebase. Это моя конфигурация:

Файл функций:

const functions = require('firebase-functions');

exports.handleWebRequest = functions
  .region('europe-west1')
  .https
  .onRequest((req, res) => {
    res.send('Currently down.');
  });

Мой firebase.json:

{
  "hosting": {
    "public": "dist",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "function": "handleWebRequest"
      }
    ]
  },
  "functions": {
    "source": "firebase-functions",
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint"
    ]
  }
}

При развертывании хостинга и функций и переходе кURL в моем браузере, я ожидаю увидеть «В настоящее время не работает» для каждого маршрута, который я открываю. Однако на каждом маршруте , за исключением , в корневом маршруте отображается сообщение «В настоящее время нет доступа», а в корневом маршруте отображается развернутый мной index.html.

Итак, в двух словах:

/ показывает мои index.html (которые я не хочу)
/whatever показывает "В настоящее время не работает". (что является тем, что я хочу)

Причина, по которой я пытаюсь все перенаправить через функцию, заключается в том, что я хочу защитить сайт с помощью HTTP Basic Auth, которая "не является роднойподдерживается "Firebase.

Ответы [ 2 ]

3 голосов
/ 14 октября 2019

Ваша функция развернута в регионе «europe-west1», но Firebase Hosting в настоящее время поддерживает только стандартную «us-central1». Это указано в документации :

Важно: Хостинг Firebase поддерживает облачные функции только в us-central1.

3 голосов
/ 14 октября 2019

Это наиболее вероятно, потому что у вас все еще есть файл index.html в папке public.

Как объяснено в doc :

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

Если вы удалите файл index.html, он должен работать так, как нужно. вы ожидаете.

...