Hi fab,
1) Good point about the FieldValue type - I rarely use that so didn't consider it in this implementation. I haven't tried this, but you may be able to change:
export type UpdateData<T extends object> = Partial<{
[TKey in Path<T>]: PathValue<T, TKey>
}>
to:
export type UpdateData<T extends object> = Partial<{
[TKey in Path<T>]: PathValue<T, TKey> | firestore.FieldValue
}>
2) This is intentional. There's now a setting for Firestore when you init that will ignore any undefined values:
https://firebase.google.com/docs/reference/js/firebase.firestore.Settings#ignoreundefinedproperties