public class DocumentReference
A DocumentReference refers to a document location in a Firestore database and can be used to write, read, or listen to the location. There may or may not exist a document at the referenced location. A DocumentReference can also be used to create a CollectionReference to a subcollection.
Subclassing Note: Firestore classes are not meant to be subclassed except for use in test mocks. Subclassing is not supported in production code and new SDK releases may break code that does so.
Methods
addSnapshotListener(EventListener<DocumentSnapshot> listener)
public ListenerRegistration addSnapshotListener(EventListener<DocumentSnapshot> listener)
Starts listening to the document referenced by this DocumentReference.
Name | Description |
listener | EventListener<DocumentSnapshot> The event listener that will be called with the snapshots. |
Type | Description |
ListenerRegistration | A registration object that can be used to remove the listener. |
addSnapshotListener(Executor executor, EventListener<DocumentSnapshot> listener)
public ListenerRegistration addSnapshotListener(Executor executor, EventListener<DocumentSnapshot> listener)
Starts listening to the document referenced by this DocumentReference.
Name | Description |
executor | Executor The executor to use to call the listener. |
listener | EventListener<DocumentSnapshot> The event listener that will be called with the snapshots. |
Type | Description |
ListenerRegistration | A registration object that can be used to remove the listener. |
collection(String collectionPath)
public CollectionReference collection(String collectionPath)
Gets a CollectionReference instance that refers to the collection that is a child of this document.
Name | Description |
collectionPath | String A relative and slash-separated path to a collection. |
Type | Description |
CollectionReference | The CollectionReference instance. |
create(Object pojo)
public ApiFuture<WriteResult> create(Object pojo)
Creates a new Document at the DocumentReference location. It fails the write if the document exists.
Name | Description |
pojo | Object The POJO that will be used to populate the document contents. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
create(Map<String,Object> fields)
public ApiFuture<WriteResult> create(Map<String,Object> fields)
Creates a new Document at the DocumentReference's Location. It fails the write if the document exists.
Name | Description |
fields | Map<String,Object> A map of the fields and values for the document. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
delete()
public ApiFuture<WriteResult> delete()
Deletes the document referred to by this DocumentReference.
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the delete completes. |
delete(Precondition options)
public ApiFuture<WriteResult> delete(Precondition options)
Deletes the document referred to by this DocumentReference.
Name | Description |
options | Precondition Preconditions to enforce for this delete. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the delete completes. |
equals(Object obj)
public boolean equals(Object obj)
Returns true if this DocumentReference is equal to the provided object.
Name | Description |
obj | Object The object to compare against. |
Type | Description |
boolean | Whether this DocumentReference is equal to the provided object. |
get()
public ApiFuture<DocumentSnapshot> get()
Reads the document referenced by this DocumentReference. If the document doesn't exist, the get() will return an an empty DocumentSnapshot.
Type | Description |
ApiFuture<DocumentSnapshot> | An ApiFuture that will be resolved with the contents of the Document at this DocumentReference, or a failure if the document does not exist. |
get(FieldMask fieldMask)
public ApiFuture<DocumentSnapshot> get(FieldMask fieldMask)
Reads the document referenced by this DocumentReference. If the document doesn't exist, the get(FieldMask fieldMask) will return an empty DocumentSnapshot.
Name | Description |
fieldMask | FieldMask A FieldMask object to retrieve the field value |
Type | Description |
ApiFuture<DocumentSnapshot> | An ApiFuture that will be resolved with the contents of the Document at this DocumentReference, or a failure if the document does not exist |
getFirestore()
public Firestore getFirestore()
Type | Description |
Firestore |
getId()
public String getId()
The id of a document refers to the last component of path pointing to a document, e.g. "document-id" in "projects/project-id/databases/database-id/document-id".
Type | Description |
String | The ID of the document. |
getParent()
public CollectionReference getParent()
A reference to the Collection to which this DocumentReference belongs to.
Type | Description |
CollectionReference | The parent Collection. |
getPath()
public String getPath()
A string representing the path of the referenced document (relative to the root of the database).
Type | Description |
String | The slash-separated path relative to the root of the database. |
hashCode()
public int hashCode()
Type | Description |
int |
listCollections()
public Iterable<CollectionReference> listCollections()
Fetches the subcollections that are direct children of this document.
Type | Description |
Iterable<CollectionReference> | An Iterable that can be used to fetch all subcollections. |
set(Object pojo)
public ApiFuture<WriteResult> set(Object pojo)
Overwrites the document referred to by this DocumentReference. If no document exists yet, it will be created. If a document already exists, it will be overwritten.
Name | Description |
pojo | Object The POJO that will be used to populate the document contents. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
set(Object pojo, SetOptions options)
public ApiFuture<WriteResult> set(Object pojo, SetOptions options)
Writes to the document referred to by this DocumentReference. If the document does not yet exist, it will be created. If you pass SetOptions, the provided data can be merged into an existing document.
Name | Description |
pojo | Object The POJO that will be used to populate the document contents. |
options | SetOptions An object to configure the set behavior. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
set(Map<String,Object> fields)
public ApiFuture<WriteResult> set(Map<String,Object> fields)
Overwrites the document referred to by this DocumentReference. If no document exists yet, it will be created. If a document already exists, it will be overwritten.
Name | Description |
fields | Map<String,Object> A map of the fields and values for the document. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
set(Map<String,Object> fields, SetOptions options)
public ApiFuture<WriteResult> set(Map<String,Object> fields, SetOptions options)
Writes to the document referred to by this DocumentReference. If the document does not yet exist, it will be created. If you pass SetOptions, the provided data can be merged into an existing document.
Name | Description |
fields | Map<String,Object> A map of the fields and values for the document. |
options | SetOptions An object to configure the set behavior. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
toString()
public String toString()
Type | Description |
String |
update(FieldPath fieldPath, Object value, Object[] moreFieldsAndValues)
public ApiFuture<WriteResult> update(FieldPath fieldPath, Object value, Object[] moreFieldsAndValues)
Updates the fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
fieldPath | FieldPath The first field to set |
value | Object The first value to set |
moreFieldsAndValues | Object[] String and Object pairs with more fields to be set. |
Type | Description |
ApiFuture<WriteResult> | A ApiFuture that will be resolved when the write finishes. |
update(Precondition options, FieldPath fieldPath, Object value, Object[] moreFieldsAndValues)
public ApiFuture<WriteResult> update(Precondition options, FieldPath fieldPath, Object value, Object[] moreFieldsAndValues)
Updates the fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
options | Precondition Preconditions to enforce on this update. |
fieldPath | FieldPath The first field to set |
value | Object The first value to set |
moreFieldsAndValues | Object[] String and Object pairs with more fields to be set. |
Type | Description |
ApiFuture<WriteResult> | A ApiFuture that will be resolved when the write finishes. |
update(Precondition options, String field, Object value, Object[] moreFieldsAndValues)
public ApiFuture<WriteResult> update(Precondition options, String field, Object value, Object[] moreFieldsAndValues)
Updates the fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
options | Precondition Preconditions to enforce on this update. |
field | String The first field to set |
value | Object The first value to set |
moreFieldsAndValues | Object[] String and Object pairs with more fields to be set. |
Type | Description |
ApiFuture<WriteResult> | A ApiFuture that will be resolved when the write finishes. |
update(String field, Object value, Object[] moreFieldsAndValues)
public ApiFuture<WriteResult> update(String field, Object value, Object[] moreFieldsAndValues)
Updates the fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
field | String The first field to set |
value | Object The first value to set |
moreFieldsAndValues | Object[] String and Object pairs with more fields to be set. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
update(Map<String,Object> fields)
public ApiFuture<WriteResult> update(Map<String,Object> fields)
Updates fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
fields | Map<String,Object> A Map containing the fields and values with which to update the document. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |
update(Map<String,Object> fields, Precondition options)
public ApiFuture<WriteResult> update(Map<String,Object> fields, Precondition options)
Updates fields in the document referred to by this DocumentReference. If the document doesn't exist yet, the update will fail.
Name | Description |
fields | Map<String,Object> A map containing the fields and values with which to update the document. |
options | Precondition Preconditions to enforce on this update. |
Type | Description |
ApiFuture<WriteResult> | An ApiFuture that will be resolved when the write finishes. |