【问题标题】:Is there a way to update the field inside the each Document of a collectionGroup in cloud function有没有办法更新云函数中collectionGroup的每个文档中的字段
【发布时间】:2021-09-04 08:29:47
【问题描述】:

我正在制作我的第一个 Angular/Firestore 应用程序,但在理解如何更新字段或在 collectionsGroup 中创建新字段时遇到了一些麻烦。我想读取的 Firestore dB 路径在这里Order(CollectionGroupName)/7WqHl5YUKPszkRELXEI2(auto-id)

所以 Order 集合组名称和 7WqHl5YUKPszkRELXEI2 是添加订单的自动 ID。 每当我想点击按钮时,我都想ADDUPDATE字段名称Status

这是我传递 auto-id(Document-Id) 和字符串值的按钮代码

 <button ngbDropdownItem (click)="updates(element.id,'Inprocess')">Status</button>

这是我的更新域代码

updates(id: string, _value: string) {let doc = this.firestore.collectionGroup<Item>('Order', ref => ref.where('id', '==', id));doc.get().subscribe((snapshot)=>{
 snapshot.forEach(doc=>{
  this.firestore.collection('Order').doc(id).update({Status: _value});
  console.log('successful')
 }) })}

   

【问题讨论】:

    标签: javascript angular firebase google-cloud-firestore angularfire2


    【解决方案1】:

    您首先需要为要更新的文档创建一个文档引用。

    const cityRef = db.collection('cities').doc('DC');
    
    // Set the 'capital' field of the city
    const res = await cityRef.update({capital: true});
    

    更多详情请查看here

    当你想在多个文档中更新它时,你可能需要批量写入器。

    let bulkWriter = firestore.bulkWriter();
    let documentRef = firestore.doc('col/doc');
    
    bulkWriter
     .update(documentRef, {foo: 'bar'})
     .then(result => {
       console.log('Successfully executed write at: ', result);
     })
     .catch(err => {
       console.log('Write failed with: ', err);
     });
    });
    

    查看here了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2019-06-29
      • 2020-02-18
      相关资源
      最近更新 更多