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

Flow报错:firebase.database.ServerValue.TIMESTAMP属性未找到

解决Flow报错:Property TIMESTAMP (Property not found in object literal)

我之前也碰到过一模一样的Flow报错,核心原因是Flow的类型定义没有正确识别Firebase的ServerValue.TIMESTAMP属性。给你几个实用的解决办法:

1. 手动添加类型断言(快速解决)

最简单的方式是给这个字段加上类型断言,明确告诉Flow这个属性是合法的:

firebase.database().ref(`${Config.ROOT}/transactions/${parentId}/`).push({
  credits,
  date: moment().format('YYYY-MM-DDTHH:mm:ssZZ'),
  serverTimestamp: firebase.database.ServerValue.TIMESTAMP as any, // 加类型断言跳过检查
  params: { value: euros, },
  type: 'topUp',
  details: transactionStatus,
})

如果想更严谨一点,可以先定义包含TIMESTAMP的类型再做断言:

type FirebaseServerValue = {
  TIMESTAMP: number,
};

firebase.database().ref(`${Config.ROOT}/transactions/${parentId}/`).push({
  // ...其他字段
  serverTimestamp: (firebase.database.ServerValue as FirebaseServerValue).TIMESTAMP,
})

2. 更新Firebase的Flow类型定义(根治方案)

Flow的类型定义有时候会滞后于Firebase的API更新,你可以尝试重新安装对应版本的类型:

  • 如果你用的是Flow官方推荐的flow-typed工具,执行:
flow-typed install firebase@<你的Firebase版本号>
  • 如果是用npm的@types/firebase包,确保版本和你的Firebase依赖匹配,更新命令:
npm install @types/firebase@latest --save-dev

3. 临时绕过检查(不推荐长期使用)

如果只是想快速推进开发,可以在.flowconfig里添加配置临时忽略这类错误,但这会降低Flow的检查精度:
打开你的.flowconfig文件,在[unsafe]区块里添加:

[unsafe]
enable_getters_and_setters=true

或者直接在当前文件顶部添加注释,跳过整个文件的Flow检查:

// @flow ignore

本质上这个错误是因为Flow默认的类型定义里,firebase.database.ServerValue的对象类型没有包含TIMESTAMP这个属性,所以它会判定你在对象字面量里使用了一个不存在的属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:29:28