firebaseで後からfieldを追加するとき
例) サブコレクションとして保存しているcommentコレクションの全てのドキュメントに
status: 1
を追加したい。
var commentsSn = await firebase.firestore.collectionGroup("comments").get(); //snapshot取得
var commentsPath = commentsSn.docs.map(e => e.ref.path) //参照するパスを取得
commentsPath.forEach(path => { //全てのパスに対して status:1 をセット
firebase.firestore.doc(path).set({
status:1
},{
merge: true
})
})
optionで merge: true を付けておかないと他のフィールドが消えるのでご注意ください。