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
コメント