2
我有一個標籤,我想添加到一個firestore集合數組。如何有效地將項目添加到與firebase 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)
})
}
哇!這太棒了!我是否也可以在批處理中包含最初的.add?也許如果我做一些像batch.set(db.collection('users')。doc(userId).collection('workouts')。doc(timeStamp.toString),{timeStamp,'class':false})?在這種情況下,我只需要提供一個'id',對吧? – Robodude
是的,你絕對可以做到這一點!您最多可以在一批中添加500個操作。你的直覺是正確的,爲了得到'batch.add()',你需要在其他地方執行'.doc()'來創建引用,然後在該引用上調用'batch.set()'。 –
@hatboysam如果我們想在單個批次中編寫500多個操作,我們可以做些什麼?可以連接多次?我的意思是,有兩個批次,一個有500個操作,另一個有250個,等等。 –