gpt4 book ai didi

javascript - 如何使用 firebase firestore 有效地将项目添加到集合中

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:44 24 4
gpt4 key购买 nike

我有一组要添加到 firestore 集合中的标签。

如果我没有误解我在这里使用的方法,我认为当我认为将它们“分组”并一次设置它们会更有效时,我正在对集合进行单独添加。这样的事情可能吗?是否可以同时将文档添加到锻炼集合中?

现在我正在查看每次调用此函数时 tags.length + 1 写入 firebase 的次数。我想尽可能地减少它。

logWorkoutAsync({ userId, timeStamp, tags }){
var db = this.firebase.firestore();

return db.collection('users').doc(userId).collection('workouts').add({
timeStamp,
'class': false
}).then(doc => {

var tagsCollection = doc.collection('tags')

var promises = []

tags.forEach(t => {
promises.push(tagsCollection.doc(t.id.toString()).set(t))
})

return Promise.all(promises)
})
}

最佳答案

Cloud Firestore 支持批量写入,请参阅此处的文档: https://firebase.google.com/docs/firestore/manage-data/transactions

所以你可以这样做:

logWorkoutAsync({ userId, timeStamp, tags }){
var db = this.firebase.firestore();

return db.collection('users').doc(userId).collection('workouts').add({
timeStamp,
'class': false
}).then(doc => {

var tagsCollection = doc.collection('tags');

// Begin a new batch
var batch = db.batch();

// Set each document, as part of the batch
tags.forEach(t => {
var ref = tagsCollection.doc(t.id.toString());
batch.set(ref, t);
})

// Commit the entire batch
return batch.commit();
})
}

关于javascript - 如何使用 firebase firestore 有效地将项目添加到集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46795817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com