Firestoreでデータの一部を更新
Firestoreですでに存在するデータの一部だけを更新、書き換えたい場合、set()メソッドを使います。
例えば下のように、id=0001のusersのnameを更新したいとします。

“Jhon”の名前を”Jhon Doe”に変えたい場合、コード例は下記です。
//firestoreの定義
const db = firebase.firestore()
const usersRef = db.collection("users")
//存在しない場合は作成、存在する場合は何もしない
usersRef.doc('0001').set({
name: 'Jhon Doe',
}, {merge: true})
.then((docRef) => {
if (docRef) {
console.log("Success edit user.");
}
})
.catch((error) => {
console.error("Error edit user: ", error);
})
set()メソッドは、第2引数に {merge: true} を指定することで、set()に渡したプロパティのみを更新します。すでに存在するプロパティの値は書き換えません。
例えば下のように、Jhonがnameとageという2つのプロパティを持っていたとしても、nameだけが”Jhon Doe”で更新されます。

存在しない場合は新規作成
set()メソッドでは指定したデータが存在しない場合、自動でデータが作成されます。
第2引数に {merge: true} を指定しない場合、呼び出すたびに新しいデータで上書きされてしまうので注意してください。
set()メソッドについて詳しくは下の公式ページに詳しく解説されています。
Cloud Firestore にデータを追加する | Firebase

コメント