Я разрабатываю приложение для блога с помощью firebase. Я использую express с e js в этом проекте.
ПРОБЛЕМА. Когда я запускаю их с помощью эмулятора, проект работает отлично, но не работает на хостинге firebase.
Я много раз пробовал изменить свой код и повторно развернуть все файлы. Эта функция отображается на вкладке «функции» в firebase и не регистрирует никаких ошибок, когда я открываю страницу.
Я проверил следующее ->
1 ) SDK функций Firebase, модули npm и интерфейс командной строки обновлены до последней версии.
// >>package.json<<
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "10"
},
"dependencies": {
"ejs": "^3.1.3",
"express": "^4.17.1",
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.7.0"
},
"devDependencies": {
"firebase-functions-test": "^0.2.0"
},
"private": true
}
2) Проект выполняется на узле 10.
3) Я добавил перезаписи в свою функцию в firebase. json
//>>firebase.json<<
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [ {
"source": "**",
"function": "app"
} ]
},
4) Пробовал номера портов и перепроверил другие важные конфигураций.
5) Мой проект связан с облаком Google, в котором есть активная платежная учетная запись.
6) Отлично работает при локальном тестировании в эмуляторе firebase.
Это моя функция
// >>index.js<<
const functions = require('firebase-functions');
const express = require('express');
const app = express(); // express initialize
//firestore
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
app.listen(443); // listen for requests
// register view engine
app.set('view engine', 'ejs');
app.set('views', './views');
// middleware & static files
app.use(express.static('stats'));
// HANDLING REQUESTS
app.get('/', (req, res) => {
res.render('index', { title: "Blog by Zeal For Good" });
})
app.get('/index', (req, res) => {
res.redirect('/');
})
app.use((req, res) => {
res.status(404).render('404', { title: '404' });
});
exports.app = functions.https.onRequest(app);
Я получаю это сообщение, когда открываю свой сайт (https://zealforgood-blog.web.app/) ->
введите описание изображения здесь