A value that is populated in Codable objects with the DocumentReference
of the current document by the Firestore.Decoder when a document is read.
If the field name used for this type conflicts with a read document field,
an error is thrown. For example, if a custom object has a field firstName
annotated with @DocumentID, and there is a property from the document
named firstName as well, an error is thrown when you try to read the
document.
When writing a Codable object containing an @DocumentID annotated field,
its value is ignored. This allows you to read a document from one path and
write it into another without adjusting the value here.
NOTE: Trying to encode/decode this type using encoders/decoders other than
Firestore.Encoder leads to an error.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-05-11 UTC."],[],[],null,["# FirebaseFirestoreSwift Framework Reference\n\nDocumentID\n==========\n\n @propertyWrapper\n public struct DocumentID\u003cValue: ../Protocols/DocumentIDWrappable.html & Codable\u003e:\n DocumentIDProtocol, Codable\n\n extension DocumentID: Equatable where Value: Equatable\n\n extension DocumentID: Hashable where Value: Hashable\n\nA value that is populated in Codable objects with the `DocumentReference`\nof the current document by the Firestore.Decoder when a document is read.\n\nIf the field name used for this type conflicts with a read document field,\nan error is thrown. For example, if a custom object has a field `firstName`\nannotated with `@DocumentID`, and there is a property from the document\nnamed `firstName` as well, an error is thrown when you try to read the\ndocument.\n\nWhen writing a Codable object containing an `@DocumentID` annotated field,\nits value is ignored. This allows you to read a document from one path and\nwrite it into another without adjusting the value here.\n\nNOTE: Trying to encode/decode this type using encoders/decoders other than\nFirestore.Encoder leads to an error.\n- `\n ``\n ``\n `\n\n ### [init(wrappedValue:)](#/s:22FirebaseFirestoreSwift10DocumentIDV12wrappedValueACyxGxSg_tcfc)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n public init(../Structs/DocumentID.html#/s:22FirebaseFirestoreSwift10DocumentIDV12wrappedValuexSgvp value: Value?)\n\n- `\n ``\n ``\n `\n\n ### [wrappedValue](#/s:22FirebaseFirestoreSwift10DocumentIDV12wrappedValuexSgvp)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n public var wrappedValue: Value? { get set }\n\n[\\`DocumentIDProtocol\\` conformance\n----------------------------------](#/%60DocumentIDProtocol%60-conformance)\n\n- `\n ``\n ``\n `\n\n ### [init(from:)](#/s:22FirebaseFirestoreSwift18DocumentIDProtocolP4fromxSo20FIRDocumentReferenceCSg_tKcfc)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n public init(from documentReference: DocumentReference?) throws\n\n[\\`Codable\\` implementation.\n---------------------------](#/%60Codable%60-implementation.)\n\n- `\n ``\n ``\n `\n\n ### [init(from:)](#/s:Se4fromxs7Decoder_p_tKcfc)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n public init(from decoder: Decoder) throws\n\n- `\n ``\n ``\n `\n\n ### [encode(to:)](#/s:SE6encode2toys7Encoder_p_tKF)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n public func encode(to encoder: Encoder) throws"]]