У меня есть приложение Angular, развернутое на Firebase Hosting, сейчас я пишу функцию с помощью express.js и внедряю ее в Firebase Functions. Проблема в том, что rewrite
раздел firebase.json
не работает, как я ожидаю, после развертывания.
Соответствующие фрагменты кода:
firebase.json
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [{
"source": "/api/**",
"function": "main"
}, {
"source": "**",
"destination": "/index.html"
}]
}
index.ts
.
. //Imports and functions
.
app.get('/ping', (req, res) => res.send('Hello from the other side'));
app.post('/contact', contact);
export const main = functions.https.onRequest(app);
Приложение Angular загружается отлично, но каждый раз, когда я пытаюсь нажать на функции api (/api/**
), оно выдает 404.
https://my-app.firebaseapp.com/api/ping // FAILS
https://us-central1-my-app.cloudfunctions.net/api/ping //THIS WORKS
https://my-app.com/api/ping //FAILS
http://localhost:5000/my-app/us-central1/main/ping //RUNNING LOCALLY. THIS WORKS
Я не уверен, куда я иду не так. Толчок в правильном направлении будет высоко оценен.
P.S .: Я также сопоставил пользовательский домен с Firebase Hosting и пытаюсь получить доступ к функциям, используя https://my-app.com/api/ping
. Приложение Angular загружается нормально на https://my-app.com