Firebase firestore在Angular universal中无法工作

3

我按照Angular官方文档上的说明,尝试使用服务器端渲染。

在步骤5中,当我尝试运行npm run build:ssr && npm run serve:ssr时,出现了以下错误:

TypeError: Cannot read property 'stringify' of undefined
at Object.<anonymous> (/.../dist/server.js:162338:308)
at __webpack_require__ (/.../dist/server.js:20:30)

在查看了那行代码后,我发现它来自于:

  • node_modules/@firebase/webchannel-wrapper/dist -> index.js 和 index.esm.js
  • node_modules/firebase/firebase-firestore.js.map

我尝试使用 firebase 5.6.0 和最新版本 5.7.2,但仍然遇到相同的错误。

关于我的项目,这是一些更多信息:angular 6、firebase 5.6.0、angular cli 6.1.0。

如果你也遇到了相同的问题或者有任何解决建议,请告诉我。

更新 - 在尝试从我的项目中删除 firebase 后,可以构建并且正常工作。


你有检查过应用 stringify 函数的代码吗?错误显示在 server.js 文件中。 - DAN
这不是我的代码问题,正如我之前提到的,这是来自Firebase的问题。(或许我错了,但我可以确定这不是我的代码问题) - Lạng Hoàng
错误提示说未定义的字符串化。这意味着在字符串化之前需要一些JSON数据。请检查您的代码。或者检查控制台上是否有任何API错误。不确定。 - DAN
@DAN,就我的问题而言,它涉及到Firebase库。在将Firebase从我的项目中移除后,它就可以正常工作了 :|。 - Lạng Hoàng
1个回答

1

如果您遇到了类似的问题,请查看此链接 link 以获取详细答案。

基本上,此链接中的说明似乎没有更新,因为提供的代码库中的代码相当不同,更重要的是,它甚至可以与 firestore 一起正常工作。

我克隆了该仓库,然后尝试在其中添加 firestore,一切都运行正常。因此,现在您有两个选择:按照指示并应用上述链接中 @Feiyang1 提供的修复方法 OR 只需克隆该仓库并检查他们实现 SSR 的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接