我正在使用React native和react-native-firebase
我的目标是一次将多个文档(对象)添加到集合中。 目前,我有这个:
const array = [
{
name: 'a'
},{
name: 'b'
}
]
array.forEach((doc) => {
firebase.firestore().collection('col').add(doc);
}
这会触发其他设备上对该集合所做的每次更新。 如何将这些文档一起批处理以进行一次更新?
答案 0 :(得分:1)
您可以像这样创建批写
var db = firebase.firestore();
var batch = db.batch()
在数组中添加更新
array.forEach((doc) => {
var docRef = db.collection("col").doc(); //automatically generate unique id
batch.set(docRef, doc);
});
最后您必须确认
batch.commit()
答案 1 :(得分:0)
您可以作为一个批处理执行多个写操作,其中包含set(),update()或delete()操作的任意组合。一批写操作是原子完成的,可以写到多个文档。
var db = firebase.firestore();
var batch = db.batch();
array.forEach((doc) => {
batch.set(db.collection('col').doc(), doc);
}
// Commit the batch
batch.commit().then(function () {
// ...
});
答案 2 :(得分:0)
数据库中的批处理还具有创建功能,该功能可以在集合中添加新文档,如果已有文档,则会引发错误。我们只需要参考文件即可。请注意,此功能存在于firebase的admin sdk中。
const batch = db.batch();
await users.map(async (item)=> {
const collectionRef = await db.collection(COLLECTION_NAME).doc();
batch.create(collectionRef, item);
});
const result = await batch.commit();