Value for argument "dataOrField" is not a valid Firestore value. Cannot use "undefined" as a Firestore value
Firestoreのドキュメントを更新する際に↓のようにundefinedなfiledを含むオブジェクトを渡したところ、
await firestore.collection(`customers`).doc(uid).update({
someField: undefined,
})
以下のエラーが発生した。
Error: Update() requires either a single JavaScript object or an alternating list of field/value pairs that can be followed by an optional precondition.
Value for argument "dataOrField" is not a valid Firestore value.
Cannot use "undefined" as a Firestore value (found in field "someField").
If you want to ignore undefined values, enable `ignoreUndefinedProperties`.
undefinedはFirestoreの値には使えないが、オプションでundefinedを無視することもできるとのこと。
ということで、 firestore.settings
で ignoreUndefinedProperties
を有効にした。
const firestore = admin.firestore()
firestore.settings({ ignoreUndefinedProperties: true })
これでundefinedなfiledは無視されてドキュメントが更新できるようになった。