Firebase Firestore阻碍Angular SSR应用稳定,延迟Hydration触发
Angular 17 SSR/Hydration 集成 Firestore 时客户端 hydration 延迟120秒问题
问题概述
我有一个启用SSR和hydration的Angular 17.x应用,集成Firebase Firestore后,服务器端运行正常,但客户端在特定未明确条件下无法快速进入稳定状态,需等待约120秒才会触发hydration。已在AngularFire仓库提交Issue但未收到回复,准备了可复现问题的Demo仓库。
环境版本
- Angular 17.0.9、Firebase 10.7.1、AngularFire 17.0.1
- 运行环境:Windows
- 补充测试环境:Angular 17.3.x + Firebase 10.11.x(问题仍存在)
复现步骤
- 克隆Demo仓库
- 安装项目依赖
- 执行命令
npm run start
预期与实际行为
- 预期行为:Angular应用在毫秒级的合理时间内进入稳定状态,hydration正常触发
- 实际行为:Firestore阻止客户端应用稳定,hydration延迟约120秒才启动
补充排查信息
经排查确定,问题根源是Firestore SDK内部通过setTimeout生成的2个未完成宏任务,导致应用无法进入稳定状态,即使在使用getDoc方法的项目中该问题依然存在。
内容的提问来源于stack exchange,提问作者Paolo De Laurentiis
相关产品推荐
相关产品推荐

