【问题标题】:Is it possible to use firebase and express together?可以同时使用firebase和express吗?
【发布时间】:2020-12-18 00:56:32
【问题描述】:

我是 express 新手,我想从 express.js 构建一个使用 firebase 作为数据库的 rest api。他们有可能一起工作吗?我试过这样做......

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”时,服务器停止响应我听说过云功能,但我们需要为此付费。有没有其他办法?

【问题讨论】:

  • 你能详细描述一下吗?哪个服务器,firebase 服务器或您自己的服务器?预期的输出是什么?实际发生了什么?
  • 我假设你在服务器端填写了“xxxxxxx”
  • 您需要提供更多调试细节。 “服务器不断断开连接”不足以了解您做错了什么。 Firebase 和 express 经常一起使用 - 正确使用它们取决于使用它们。
  • @ARIFISHER 这将是我的rest api,它将在我自己的服务器上。我用 react 制作了我的应用,当用户访问我的 react 应用时,它应该请求这个 api 显示来自 firebase 的所有数据,
  • 越来越好,但你应该说哪个服务器。

标签: javascript node.js firebase express firebase-realtime-database


【解决方案1】:

问题是您只在请求 api 时读取数据,而没有发送响应。这是我修复它的方法:

firebase.database().ref("public").on("value", snapshot =>{
data = snapshot.val();
})

app.get("/api", (req, res)=>{
    res.send(data)

})

用此代码替换您的 app.get,它应该可以工作。

【讨论】:

  • 所以你的问题实际上已经解决了,所以应该可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 2010-10-29
  • 2014-02-19
  • 2011-06-24
  • 2015-06-16
  • 2021-10-29
相关资源
最近更新 更多