![](/img/trans.png)
[英]firstore query skips all documents with same startAfter value
[英]Firstore create multiple documents at once
我已经给出了我想添加到 Firestore 的文档ID数组。
let documentIds = [
'San Francisco',
'New York',
'Las Vegas'
]
每个文档都应该有一组预定义的属性。
let data = {
country: 'US',
language: 'English'
}
Firebase Admin SDK 中是否有一些功能可以一次创建所有文档,而无需遍历 documentIds 数组?
这应该有所帮助。 Sam 的回答会让您很好地理解如何使用批量写入。 请务必查看他链接到的文档。
我不想让萨姆不高兴。 他昨天修好了我的笔记本电脑:-)
let documentIds = [
'San Francisco',
'New York',
'Las Vegas'
]
let data = {country: 'US', language: 'English'}
var batch = db.batch();
documentIds.forEach(docId => {
batch.set(db.doc(`cities/${docId}`), data);
})
batch.commit().then(response => {
console.log('Success');
}).catch(err => {
console.error(err);
})
您可以进行批量写入。 您仍然需要遍历文档以将它们全部添加到批处理对象,但这将是一个单一的网络调用:
例子:
// Get a new write batch
var batch = db.batch();
// Set the value of 'NYC'
var nycRef = db.collection("cities").doc("NYC");
batch.set(nycRef, {name: "New York City"});
// Update the population of 'SF'
var sfRef = db.collection("cities").doc("SF");
batch.update(sfRef, {"population": 1000000});
// Delete the city 'LA'
var laRef = db.collection("cities").doc("LA");
batch.delete(laRef);
// Commit the batch
batch.commit().then(function () {
// ...
});
https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.