Chrome 53中出现Firestore INTERNAL UNHANDLED ERROR报错如何解决
解决方案
问题根因
Chrome 53发布于2016年,仅支持到ES6标准,缺失大量Firebase新版SDK依赖的ES2017+ API、标准fetch实现以及Web Crypto接口。而你用到的webOS定制版Chromium 53由厂商预装了专属补丁和API补全,因此可以正常运行Firebase,和原生桌面Chrome 53的运行环境存在差异。
可落地的解决方法
- 方案1:降级Firebase到兼容旧浏览器的版本
8.10.0是Firebase最后一个稳定支持ES6环境的版本,直接替换SDK版本即可:
NPM安装命令:npm install firebase@8.10.0
注意该版本为命名空间式调用写法,和9+版本的模块化调用语法存在差异,需要同步调整业务代码的Firebase调用逻辑。 - 方案2:高版本Firebase配套补全polyfill
若必须使用9+版本的Firebase,可在引入Firebase之前加载对应polyfill补全缺失能力:
需补全的能力包括:Promise扩展方法、fetch接口、Web Crypto接口,可分别用core-js、whatwg-fetch、webcrypto-shim实现补全,再通过Babel将Firebase相关代码转译为ES5语法即可。 - 方案3:对齐webOS运行环境
提取webOS环境中内置的全局polyfill代码,注入到桌面Chrome 53的调试页面中,消除两个环境的API差异,即可和webOS端表现一致。 - 方案4:针对性补全缺失API
加载未压缩版本的Firebase开发版SDK,定位报错对应的具体缺失API,单独引入对应polyfill,相比全量引入polyfill可减少不必要的体积开销。
内容的提问来源于stack exchange,提问作者HyperTech
相关产品推荐
相关产品推荐

