Saya memiliki fungsi cloud
const app = express()
app.get('/ping', (req, res) => {
res.send('pong');
})
exports.api = functions.https.onRequest(app)
dan itu berfungsi dengan baik
https://...cloudfunctions.net/api/ping
pong
Kemudian saya menambahkan konfigurasi berikut
{
"hosting": {
"public": "public",
"rewrites": [ {
"source": "/api/**", "function": "api"
} ]
}
}
dan coba panggil dari url aplikasi dan gagal.
https://...firebaseapp.com/api/ping
404
Jika saya menggunakan tulis ulang semua panggilan ke fungsi saya seperti ini
{
"hosting": {
"public": "public",
"rewrites": [ {
"source": "**", "function": "api"
} ]
}
}
maka itu berhasil
https://...firebaseapp.com/ping
pong
Apakah saya melewatkan sesuatu di sini atau skenario ini tidak didukung?
Ada blog yang menulis tentang ini, yang menggunakan dan segmen dalam penulisan ulang:
https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html
Anda perlu menambahkan /api ke awal rute ekspres Anda. Awalan tidak
dipotong ketika URL dikirim ke fungsi cloud.
Pada Minggu, 9 Juli 2017, 23:27 roosi [email protected] menulis:
Saya memiliki fungsi cloud
aplikasi const = ekspres()
app.get('/ping', (req, res) => {
res.send('pong');
})export.api = functions.https.onRequest(app)
dan itu berfungsi dengan baik
https://...cloudfunctions.net/api/ping
pongKemudian saya menambahkan konfigurasi berikut
{
"hosting": {
"publik": "publik",
"menulis ulang": [ {
"sumber": "/api/**", "fungsi": "api"
} ]
}
}dan coba panggil dari url aplikasi dan gagal.
https://...firebaseapp.com/api/ping
404Jika saya menggunakan tulis ulang semua panggilan ke fungsi saya seperti ini
{
"hosting": {
"publik": "publik",
"menulis ulang": [ {
"sumber": "**", "fungsi": "api"
} ]
}
}maka itu berhasil
https://...firebaseapp.com/ping
pongApakah saya melewatkan sesuatu di sini atau skenario ini tidak didukung?
Ada blog yang menulis tentang ini, yang menggunakan dan segmen dalam penulisan ulang:
https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html
http://url—
Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/firebase/firebase-tools/issues/392 , atau matikan suara
benang
https://github.com/notifications/unsubscribe-auth/AAAD_updmJ5mvK9NFrx5v-a0lQckEhaHks5sMcRogaJpZM4OSaDu
.
@roosi Saya juga mengalami masalah ini minggu lalu. Ini menjengkelkan tetapi solusi terbaik yang bisa saya buat untuk skenario seperti ini adalah membuat fungsi main
yang menampung semua fungsi lain dan menulis ulang semua panggilan hosting ke sana. Ini memungkinkan Anda untuk memanggil https://...firebaseapp.com/api/ping
, misalnya.
Lihat jawaban saya di sini untuk lebih jelasnya:
https://stackoverflow.com/a/45224176/1309346
Saya kira contoh di https://github.com/firebase/functions-samples/blob/master/authorized-https-endpoint juga rusak?
Komentar yang paling membantu
Anda perlu menambahkan /api ke awal rute ekspres Anda. Awalan tidak
dipotong ketika URL dikirim ke fungsi cloud.
Pada Minggu, 9 Juli 2017, 23:27 roosi [email protected] menulis: