#javascript #node.js #firebase #express #firebase-realtime-database
# #javascript #node.js #firebase #экспресс #firebase-realtime-database
Вопрос:
Я новичок в express, и я хотел создать rest api из express.js который использует firebase в качестве базы данных. возможно ли, чтобы они работали вместе? я пытался это сделать…
const firebase = require("firebase")
const express = require("express");
const app = express();
const cors = require( 'cors');
var firebaseConfig = {
apiKey: "xxxxxxx",
authDomain: "xxxxxx",
databaseURL: "xxxxxx",
projectId: "xxxxxx",
storageBucket: "xxxxxx",
messagingSenderId: "xxxxxx",
appId: "xxxxxxx"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
app.use(cors())
let data;
firebase.database().ref("public").on("value", snapshot =>{
data = snapshot.val();
})
app.get("/api", (req, res)=>{
res.send(data)
})
app.listen(3500, ()=>console.log("listening at port 3500..."))
Но это не сработало, сервер продолжает отключаться, сервер не отвечает, и я должен запустить его снова. И когда я перехожу на «порт: 3500», сервер перестает отвечать, я слышал об облачной функции, но нам нужно заплатить за это. Есть ли другой способ?
Комментарии:
1. Не могли бы вы описать более подробно? Какой сервер, сервер firebase или ваш собственный сервер? Каков ожидаемый результат и что происходит на самом деле?
2. Я предполагаю, что вы заполнили «xxxxxxx» на стороне сервера
3. Вам нужно будет предоставить больше деталей отладки. «Сервер продолжает отключаться» — недостаточно информации, чтобы понять, что вы делаете неправильно. Firebase и express обычно используются вместе — их правильное использование зависит от use.
4. @ARIFISHER это будет мой rest api, он будет на моем собственном сервере. Я создал свое приложение из react, и когда пользователь переходит в мое приложение react, он должен запросить этот api для отображения всех данных из firebase,
5. Становится лучше, но вы должны сказать, какой сервер.
Ответ №1:
Проблема в том, что вы считываете данные только при запросе API и не отправляете ответ. Вот как я это исправил:
firebase.database().ref("public").on("value", snapshot =>{
data = snapshot.val();
})
app.get("/api", (req, res)=>{
res.send(data)
})
Замените свой app.get этим кодом, и он должен работать.
Комментарии:
1. Итак, ваш вопрос действительно исправил это, так что это должно сработать.