Firestore - batch.add不是一个函数

问题描述 投票:27回答:4

Firestore批处理写入的documentation仅列出set()update()delete()作为允许的操作。

有没有办法在批处理中添加add()操作?我需要使用自动生成的ID创建文档。

google-cloud-firestore
4个回答
69
投票

您可以分两步完成此操作:

// Create a ref with auto-generated ID
var newCityRef = db.collection('cities').doc();

// ...

// Add it in the batch
batch.set(newCityRef, { name: 'New York City' });

.doc()方法不会向网络或磁盘写入任何内容,它只是使用您可以在以后使用的自动生成的ID进行引用。


1
投票

根据文件

在幕后,.add(...)和.doc()。set(...)是完全等效的,所以你可以使用哪个更方便。

也许这适用于批次?


0
投票

创建对要添加批处理数据的集合的引用我们使用forEach遍历req.body并使用set方法设置要添加到集合中的每个数据

我们使用commit方法提交数据并将数据保存到集合中,并在成功时发送成功响应。

cloud firestore


0
投票

在我的例子中,使用AngularFire2,我不得不使用batch.set()方法,将带有先前创建的ID的文档引用作为第一个参数传递,并引用参考属性:

import { AngularFirestore } from '@angular/fire/firestore';
...
private afs: AngularFirestore
...
batch.set(
    this.afs.collection('estados').doc(this.afs.createId()).ref,
    er.getData()
  );
© www.soinside.com 2019 - 2024. All rights reserved.