有没有办法在 Firebase 托管上 运行 通用应用程序?

Is there a way to run universal apps on Firebase Hosting?

我最近成功地将我的 Angular 2 应用程序部署到 Firebase 托管,到目前为止我真的很喜欢这个设置,特别是使用 CI 部署它是多么容易。

目前,我正在考虑为我的应用程序添加通用服务器渲染支持,但我不确定这是否由 Firebase 托管处理,因为它说它只是静态文件。

但是,让我认为这可能是我缺少的潜在功能的原因是 Firebase 提供对单页应用程序的支持,因此我决定问一下。

如果不支持此类应用程序,我们将来可以期待吗?

目前这是不可能的。然而,由于 Angular 2,Google 和 Firebase 齐头并进,我会说这只是时间问题。

同时,您可以创建一个基于 Node.js 的服务器,在其中安装 Angular Universal,并使用 Firebase Node SDK 连接到 Firebase。

接下来,您只需从 Angular 2 应用程序与该节点后端通信。

如果您使用的是 angularfire2,那么无论哪种方式都会破坏通用性。程序包中有一些调用 "window" 的东西在服务器上不存在。除非 universal 或 angularfire 有所改变,否则这是一种方式

在该视频的结尾,David East 提到可以将 Google Cloud Functions 与 Angular Universal 等一起使用:https://www.youtube.com/watch?v=R3v8EcYzf_M

该视频本身对 Firebase 用户非常有用。但是话题大约从 23:30.

开始

另一种方法是完全跳过 universal 并执行类似 this.

的操作

Rendertron 是一个可以启动的无头chrome。类似于 phantomjs。但通用提供速度。