繁体   English   中英

在 firestore 中“属性‘arrayUnion’在类型‘typeof FieldValue’上不存在”

[英]In firestore "Property 'arrayUnion' does not exist on type 'typeof FieldValue'"

我在我的 angular 项目中使用 @angular/fire": "7.4.0" 我只想对用户文档进行更新操作。在用户文档中有一个字段'groups',它是 firestore 中的数组类型。我想在该数组中插入一个新值。检查用户文档结构的图像

我使用以下语法进行更新操作-

//Add Group in user's groups array
  addGroupToUserDoc(gid: string, userId: string) {
    const userRef = this.db.doc(`users/${userId}`).update(
      {
        groups: FieldValue.arrayUnion(gid),
        
      }
    );
  }

错误 -收到错误

这里 this.db 是 'AngularFirestore' object。我参考了以下两个资源并尝试了两种方法但没有任何效果。

https://github.com/angular/angularfire/issues/2008

https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array

您需要在 FieldValue 之前添加“firestore”。 像这样:

//Add Group in user's groups array
  addGroupToUserDoc(gid: string, userId: string) {
    const userRef = this.db.doc(`users/${userId}`).update(
      {
        groups: firestore.FieldValue.arrayUnion(gid),
        
      }
    );
  }

并从 firestore/app 导入 firestore

import { firestore } from 'firebase/app';

就我而言,在 Node 环境中使用 SDK 我不得不使用

import * as admin from 'firebase-admin'

admin.firestore.FieldValue.arrayUnion(gid)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM