Annotation used to mark a POJO property to be automatically populated with the document's
ID when the POJO is created from a Cloud Firestore document (for example, via
toObject(Class)
).
- Any of the following will throw a runtime exception:
- This annotation is applied to a property of a type other than String or
DocumentReference
. - This annotation is applied to a property that is not writable (for example, a Java Bean getter without a backing field).
- This annotation is applied to a property with a name that conflicts with a read
document field. For example, if a POJO has a field `firstName` annotated by
@DocumentId
, and there is a property from the document named `firstName` as well, an exception is thrown when you try to read the document into the POJO viatoObject(Class)
orget()
.
When using a POJO to write to a document (via
set(Object)
or @set(DocumentReference,
Object)
), the property annotated by @DocumentId
is ignored, which
allows writing the POJO back to any document, even if it's not the origin of the POJO.