使用自己的服务器 node.js 托管 Firebase

Posted

技术标签:

【中文标题】使用自己的服务器 node.js 托管 Firebase【英文标题】:Firebase Hosting with own server node.js 【发布时间】:2015-07-22 05:34:00 【问题描述】:

我有带有 firebase 数据库的 webapp。我想在 firebase 上托管该应用程序。我的应用程序有自己的服务器 nodejs 并使用 websockets。如何在 Firebase 上托管我的应用程序?以及如何在 Firebase 上运行我自己的服务器?

【问题讨论】:

为什么 Firebase Cloud Functions 不能满足您的需求? 【参考方案1】:

Firebase Functions 是不错的选择。

示例:

    在您的项目中设置 /index.js,使用 expressjs 监听您想要的端口。 F.e. 3000
const app = express()
const port = 3000
...
app.get('/', (req, res, next) =>  
    ... hier your code to handle request
)
...
app.listen(port, () => 
    console.log(`app listening at port = $port`)
    functions.logger.info("Application started", structuredData: true);
)
    参考 express-app 导出函数:

exports.api = functions.https.onRequest(app)

【讨论】:

【参考方案2】:

使用 Firebase 功能,是的,您可以。您可以从 Google 观看本教程,它非常清晰易懂。 Node.js apps on Firebase Hosting Crash Course - Firecasts

【讨论】:

【参考方案3】:

Firebase 托管允许您使用 Cloud Functions 执行服务器端处理。这意味着您可以支持为您的 Firebase 托管网站动态生成内容。

Documentation

【讨论】:

【参考方案4】:

您可以使用 Google Cloud Functions 以无服务器方式执行大多数任务处理:https://firebase.google.com/docs/hosting/functions

我用它来动态加载基于req.urljavascript

【讨论】:

我有一个疑问。我有两个 firebase 项目:react static websiteapi express with functions。我可以使用 reactjs 访问此功能并使用 .. what: firestore 或从 firebase url 调用 api 来做出本机反应吗?【参考方案5】:

我认为你的问题很简单。答案也很简单:不,你不能。

Firebase 仅提供静态文件。您需要为此尝试 heroku、codeship 等。

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review @BillalBEGUERADJ 这看起来不像是答案,但确实如此。 我想更新我的答案:是的,现在可以了。看这里:youtu.be/c93iGKyvh3o【参考方案6】:

我不确定您到底在寻找什么。我假设它是这两个之一:

    您想在 Firebase 的服务器上运行 node.js 脚本

    无法在 Firebase 的服务器上运行您自己的代码。

    您想在自己的服务器上运行 node.js 脚本并让它们与您的 Firebase 数据交互

    Firebase 有一个 node.js 包,可让您通过自己的节点脚本与其 BaaS 服务通信。请参阅the node.js section in Firebase's quickstart 和the npm package for Firebase。

【讨论】:

但是,当我的服务器在 firebase 上时,如何运行我的 nodejs 服务器? 我没有关注你的问题。您是否在问如何在 Firebase 的服务器上运行 node.js 脚本?在那种情况下,答案是:你不能。或者您是在问您的节点脚本(在您的服务器上运行)如何与 Firebase 通信?在后一种情况下,上面的链接实际上就是它的全部。运行脚本时是否收到错误消息? 我想你想使用自己的数据库服务器?

以上是关于使用自己的服务器 node.js 托管 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

将 Nowjs 托管的 Node.js 服务器连接到 MongoDB Atlas DB

使用 jQuery - JSONP 从托管在 Vagrant VM 上的第三方 Node.js 服务器获取数据

我是否需要一台不同的服务器来运行node.js

使用 Node JS 连接到在线托管的 PostgreSQL

node.js 可以在任何托管服务提供商中运行吗?

django、node js、php网站托管和域信息