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

@angular/fire 7.4.0调用FieldValue.arrayUnion提示属性不存在报错

报错原因

@angular/fire@7.4.0 适配的是Firebase v9及以上版本的模块化SDK,你写的FieldValue.arrayUnion()是v8及更早版本的命名空间式调用写法,v9版本已经把这类字段操作方法改成了独立导出的函数,不再挂载在FieldValue类上,所以会提示属性不存在。

修复方法
  • 替换导入方式,直接导入独立的arrayUnion方法,不要从FieldValue类上调用方法:
// 从firestore模块直接导入arrayUnion,两种导入路径二选一即可
import { arrayUnion } from 'firebase/firestore';
// 从@angular/fire导出路径导入也可正常使用
// import { arrayUnion } from '@angular/fire/firestore';
  • 修改更新逻辑,直接调用导入的arrayUnion函数:
//Add Group in user's groups array
addGroupToUserDoc(gid: string, userId: string) {
  return this.db.doc(`users/${userId}`).update({
    groups: arrayUnion(gid)
  });
}
补充说明
  • v9模块化SDK下所有Firestore字段操作方法都是独立导出的,包括常用的arrayRemove(数组移除元素)、serverTimestamp(生成服务端时间戳)、increment(数值自增)、deleteField(删除字段),使用时都是直接导入对应函数调用即可,不需要挂载在任何类上。
  • 不要混用v8命名空间写法和v9模块化写法,参考文档时注意区分版本对应的API形式,避免同类报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:36:43