Возможно ли использовать firebase и express вместе?

#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. Итак, ваш вопрос действительно исправил это, так что это должно сработать.