You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Node.js访问FireStore时触发的libuv断言失败问题?

解决Node.js访问FireStore触发libuv断言失败崩溃的问题

我之前换了新Windows笔记本后也碰到过一模一样的问题!折腾好久才搞清楚是VS编译器的bug影响了libuv,FireStore只是刚好触发了这个底层问题而已。下面给你几个不用切换到WSL的可行方案,按优先级排序:

1. 升级Node.js到包含修复的稳定版本

这是最简单最稳妥的方案。libuv的这个bug已经通过workaround修复,而Node.js作为依赖libuv的上层项目,早就把这个修复集成到了新版本中。

  • 优先选择最新的LTS版本(比如20.x或18.x系列),这些版本不仅包含libuv的修复,还能获得更好的性能和安全性支持。
  • 如果你习惯用版本管理器,推荐用nvm-windows来管理Node版本,步骤如下:
    • 卸载当前全局安装的Node.js(可选,nvm可以和全局Node共存,但建议统一管理)
    • 下载安装nvm-windows后,打开命令提示符或PowerShell:
      # 安装最新LTS版本
      nvm install lts/hydrogen
      # 切换到该版本
      nvm use lts/hydrogen
      # 验证版本是否切换成功
      node -v
      
    • 重新运行你的项目,应该就不会再出现那个断言失败的崩溃了。

2. 手动替换旧Node版本中的libuv库(仅当必须使用旧Node版本时)

如果你的项目依赖特定旧Node版本,无法直接升级,可以尝试手动替换Node安装目录中的uv.dll文件:

  • 找到对应Node版本的libuv修复后编译版本(注意匹配Node的架构:x86或x64)
  • 定位到你的Node安装目录(比如C:\Program Files\nodejs),替换其中的uv.dll
  • 这个方法风险较高,可能导致Node其他功能异常,所以仅作为迫不得已的备选方案。

补充说明

你遇到的Assertion failed: new_time >= loop->time错误确实是VS编译器bug导致的,FireStore客户端因为频繁调用时间相关的异步API,刚好触发了libuv的底层问题,和FireStore本身并没有直接关系。升级Node到包含修复的版本后,这个问题会彻底解决,完全不用改动你的项目代码或开发环境配置。

内容的提问来源于stack exchange,提问作者Codo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:17:47