配列への追加・削除
users
というコレクションにあるtaro
というドキュメントのfavorites
フィールドに要素を追加・削除することを考えます。
let taroRef = db.collection("users").document("taro")
// 追加
taroRef.updateData([
"favorites": FieldValue.arrayUnion(["焼肉"])
])
// 削除
taroRef.updateData([
"favorites": FieldValue.arrayRemove(["リンゴ"])
])
Map型配列への追加・削除
users
というコレクションにあるjiro
というドキュメントのhomework
フィールドに要素を追加・削除することを考えます。
homework
フィールドはMap型の配列になっており、それぞれの要素には「科目名」と「優先度」のデータが入っています。
[]
の数に注意してください。
let jiroRef = db.collection("users").document("jiro")
// 追加
jiroRef.updateData([
"homework": FieldValue.arrayUnion([[
"subject": "社会",
"priority": 4
]])
])
// 削除
jiroRef.updateData([
"homework": FieldValue.arrayRemove([[
"subject": "国語",
"priority": 1
]])
])
注意点
この方法では、配列に既に存在する要素と同じ内容のものは追加することができないので注意する必要があります。
上の例だと「カレー」「リンゴ」「ピザ」は既に存在するため、再度追加することはできません。
参考