使用Firebase函数部署基于React的SSR应用程序时出错

时间:2019-01-24 05:20:44

标签: reactjs firebase google-cloud-functions firebase-hosting next.js

在对应用程序进行了一些修改之后,我尝试将SSR应用程序部署在最初由https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router分叉的Firebase中。 当我执行sudo firebase serve --only functions,hosting时工作正常,但当我执行firebase deploy时抛出错误。 可复制的仓库是https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router,其中有一个package.json https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router/public 我也将公共目录用作函数目录https://github.com/subhendukundu/template-react-ssr/blob/feature/react-router/firebase.json。 但是,即使我为云函数使用了不同的函数目录,我也会看到相同的错误。 反正有我可以解决的吗?

2 个答案:

答案 0 :(得分:0)

有可能,但是您不能将静态资产与云功能一起使用。您需要混合使用Firebase功能和Firebase托管。

Firebase的家伙已经考虑过这一点,您也可以使用一个实现。

检查以下文档:

注意:使用云功能时需要考虑一些延迟。

  

当新实例处理其第一个请求时,响应时间会缩短,这称为冷启动

More info

答案 1 :(得分:-1)

问题是,firebase托管仅支持SPA,这意味着SSR不可用,您需要在其他环境中运行SSR服务器,在其中可以运行nextJS,或者如果您使用的是静态页面生成器您可以直接上传文件,这会损害刷新内容的能力,不过,我确信采用云功能和gatsby的解决方案是可行的。

Tl; DR:您不会从Firebase托管中获得SSR