GitHub の gg-mark/NullCodable にある NullCodable.swift をコピーしておき、 encode したい構造体の Optional 型のプロパティに @NullCodableという propertyWrapper を付ければ消えない様になります。
例
import FirebaseFirestore
struct Data: Codable {
var a: Int? = nil
@NullCodable var b: Int? = nil
}
let data = Data()
let encodedData = Firestore.Encoder().encode(data)
print(encodedData)
["b": <null>]
NullCodable がない a は消えて、
NullCodable をつけた b は残っている。