public class FirestoreClient implements BackgroundResourceService Description: The Cloud Firestore service.
Cloud Firestore is a fast, fully managed, serverless, cloud-native NoSQL document database that simplifies storing, syncing, and querying data for your mobile, web, and IoT apps at global scale. Its client libraries provide live synchronization and offline support, while its security features and integrations with Firebase and Google Cloud Platform (GCP) accelerate building truly serverless apps.
This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
GetDocumentRequest request =
GetDocumentRequest.newBuilder()
.setName("name3373707")
.setMask(DocumentMask.newBuilder().build())
.build();
Document response = firestoreClient.getDocument(request);
}
Note: close() needs to be called on the FirestoreClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().
The surface of this class includes several types of Java methods for each of the API's methods:
- A "flattened" method. With this type of method, the fields of the request type have been converted into function parameters. It may be the case that not all fields are available as parameters, and not every API method will have a flattened method entry point.
- A "request object" method. This type of method only takes one parameter, a request object, which must be constructed before the call. Not every API method will have a request object method.
- A "callable" method. This type of method takes no parameters and returns an immutable API callable object, which can be used to initiate calls to the service.
See the individual methods for example code.
Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.
This class can be customized by passing in a custom instance of FirestoreSettings to create(). For example:
To customize credentials:
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
.build();
FirestoreClient firestoreClient = FirestoreClient.create(firestoreSettings);
To customize the endpoint:
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder().setEndpoint(myEndpoint).build();
FirestoreClient firestoreClient = FirestoreClient.create(firestoreSettings);
Please refer to the GitHub repository's samples for more quickstart code snippets.
Implements
BackgroundResourceStatic Methods
create()
public static final FirestoreClient create()Constructs an instance of FirestoreClient with default settings.
| Type | Description |
| FirestoreClient |
| Type | Description |
| IOException |
create(FirestoreSettings settings)
public static final FirestoreClient create(FirestoreSettings settings)Constructs an instance of FirestoreClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.
| Name | Description |
| settings | FirestoreSettings |
| Type | Description |
| FirestoreClient |
| Type | Description |
| IOException |
create(FirestoreStub stub)
public static final FirestoreClient create(FirestoreStub stub)Constructs an instance of FirestoreClient, using the given stub for making calls. This is for advanced usage - prefer using create(FirestoreSettings).
| Name | Description |
| stub | FirestoreStub |
| Type | Description |
| FirestoreClient |
Constructors
FirestoreClient(FirestoreSettings settings)
protected FirestoreClient(FirestoreSettings settings)Constructs an instance of FirestoreClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
| Name | Description |
| settings | FirestoreSettings |
FirestoreClient(FirestoreStub stub)
protected FirestoreClient(FirestoreStub stub)| Name | Description |
| stub | FirestoreStub |
Methods
awaitTermination(long duration, TimeUnit unit)
public boolean awaitTermination(long duration, TimeUnit unit)| Name | Description |
| duration | long |
| unit | TimeUnit |
| Type | Description |
| boolean |
| Type | Description |
| InterruptedException |
batchGetDocumentsCallable()
public final ServerStreamingCallable<BatchGetDocumentsRequest,BatchGetDocumentsResponse> batchGetDocumentsCallable()Gets multiple documents.
Documents returned by this method are not guaranteed to be returned in the same order that they were requested.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BatchGetDocumentsRequest request =
BatchGetDocumentsRequest.newBuilder()
.setDatabase("database1789464955")
.addAllDocuments(new ArrayList<String>())
.setMask(DocumentMask.newBuilder().build())
.build();
ServerStream| Type | Description |
| ServerStreamingCallable<BatchGetDocumentsRequest,BatchGetDocumentsResponse> |
batchWrite(BatchWriteRequest request)
public final BatchWriteResponse batchWrite(BatchWriteRequest request)Applies a batch of write operations.
The BatchWrite method does not apply the write operations atomically and can apply them out of order. Method does not allow more than one write per document. Each write succeeds or fails independently. See the BatchWriteResponse for the success status of each write.
If you require an atomically applied set of writes, use Commit instead.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BatchWriteRequest request =
BatchWriteRequest.newBuilder()
.setDatabase("database1789464955")
.addAllWrites(new ArrayList<Write>())
.putAllLabels(new HashMap| Name | Description |
| request | BatchWriteRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| BatchWriteResponse |
batchWriteCallable()
public final UnaryCallable<BatchWriteRequest,BatchWriteResponse> batchWriteCallable()Applies a batch of write operations.
The BatchWrite method does not apply the write operations atomically and can apply them out of order. Method does not allow more than one write per document. Each write succeeds or fails independently. See the BatchWriteResponse for the success status of each write.
If you require an atomically applied set of writes, use Commit instead.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BatchWriteRequest request =
BatchWriteRequest.newBuilder()
.setDatabase("database1789464955")
.addAllWrites(new ArrayList<Write>())
.putAllLabels(new HashMap| Type | Description |
| UnaryCallable<BatchWriteRequest,BatchWriteResponse> |
beginTransaction(BeginTransactionRequest request)
public final BeginTransactionResponse beginTransaction(BeginTransactionRequest request)Starts a new transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BeginTransactionRequest request =
BeginTransactionRequest.newBuilder()
.setDatabase("database1789464955")
.setOptions(TransactionOptions.newBuilder().build())
.build();
BeginTransactionResponse response = firestoreClient.beginTransaction(request);
}
| Name | Description |
| request | BeginTransactionRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| BeginTransactionResponse |
beginTransaction(String database)
public final BeginTransactionResponse beginTransaction(String database)Starts a new transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String database = "database1789464955";
BeginTransactionResponse response = firestoreClient.beginTransaction(database);
}
| Name | Description |
| database | StringRequired. The database name. In the format:
|
| Type | Description |
| BeginTransactionResponse |
beginTransactionCallable()
public final UnaryCallable<BeginTransactionRequest,BeginTransactionResponse> beginTransactionCallable()Starts a new transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BeginTransactionRequest request =
BeginTransactionRequest.newBuilder()
.setDatabase("database1789464955")
.setOptions(TransactionOptions.newBuilder().build())
.build();
ApiFuture| Type | Description |
| UnaryCallable<BeginTransactionRequest,BeginTransactionResponse> |
close()
public final void close()commit(CommitRequest request)
public final CommitResponse commit(CommitRequest request)Commits a transaction, while optionally updating documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
CommitRequest request =
CommitRequest.newBuilder()
.setDatabase("database1789464955")
.addAllWrites(new ArrayList<Write>())
.setTransaction(ByteString.EMPTY)
.build();
CommitResponse response = firestoreClient.commit(request);
}
| Name | Description |
| request | CommitRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| CommitResponse |
commit(String database, List<Write> writes)
public final CommitResponse commit(String database, List<Write> writes)Commits a transaction, while optionally updating documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String database = "database1789464955";
List<Write> writes = new ArrayList<>();
CommitResponse response = firestoreClient.commit(database, writes);
}
| Name | Description |
| database | StringRequired. The database name. In the format:
|
| writes | List<Write>The writes to apply. Always executed atomically and in order. |
| Type | Description |
| CommitResponse |
commitCallable()
public final UnaryCallable<CommitRequest,CommitResponse> commitCallable()Commits a transaction, while optionally updating documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
CommitRequest request =
CommitRequest.newBuilder()
.setDatabase("database1789464955")
.addAllWrites(new ArrayList<Write>())
.setTransaction(ByteString.EMPTY)
.build();
ApiFuture| Type | Description |
| UnaryCallable<CommitRequest,CommitResponse> |
createDocument(CreateDocumentRequest request)
public final Document createDocument(CreateDocumentRequest request)Creates a new document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
CreateDocumentRequest request =
CreateDocumentRequest.newBuilder()
.setParent("parent-995424086")
.setCollectionId("collectionId1636075609")
.setDocumentId("documentId-814940266")
.setDocument(Document.newBuilder().build())
.setMask(DocumentMask.newBuilder().build())
.build();
Document response = firestoreClient.createDocument(request);
}
| Name | Description |
| request | CreateDocumentRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| Document |
createDocumentCallable()
public final UnaryCallable<CreateDocumentRequest,Document> createDocumentCallable()Creates a new document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
CreateDocumentRequest request =
CreateDocumentRequest.newBuilder()
.setParent("parent-995424086")
.setCollectionId("collectionId1636075609")
.setDocumentId("documentId-814940266")
.setDocument(Document.newBuilder().build())
.setMask(DocumentMask.newBuilder().build())
.build();
ApiFuture<Document> future = firestoreClient.createDocumentCallable().futureCall(request);
// Do something.
Document response = future.get();
}
| Type | Description |
| UnaryCallable<CreateDocumentRequest,Document> |
deleteDocument(DeleteDocumentRequest request)
public final void deleteDocument(DeleteDocumentRequest request)Deletes a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
DeleteDocumentRequest request =
DeleteDocumentRequest.newBuilder()
.setName("name3373707")
.setCurrentDocument(Precondition.newBuilder().build())
.build();
firestoreClient.deleteDocument(request);
}
| Name | Description |
| request | DeleteDocumentRequestThe request object containing all of the parameters for the API call. |
deleteDocument(String name)
public final void deleteDocument(String name)Deletes a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String name = "name3373707";
firestoreClient.deleteDocument(name);
}
| Name | Description |
| name | StringRequired. The resource name of the Document to delete. In the format:
|
deleteDocumentCallable()
public final UnaryCallable<DeleteDocumentRequest,Empty> deleteDocumentCallable()Deletes a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
DeleteDocumentRequest request =
DeleteDocumentRequest.newBuilder()
.setName("name3373707")
.setCurrentDocument(Precondition.newBuilder().build())
.build();
ApiFuture<Empty> future = firestoreClient.deleteDocumentCallable().futureCall(request);
// Do something.
future.get();
}
| Type | Description |
| UnaryCallable<DeleteDocumentRequest,Empty> |
getDocument(GetDocumentRequest request)
public final Document getDocument(GetDocumentRequest request)Gets a single document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
GetDocumentRequest request =
GetDocumentRequest.newBuilder()
.setName("name3373707")
.setMask(DocumentMask.newBuilder().build())
.build();
Document response = firestoreClient.getDocument(request);
}
| Name | Description |
| request | GetDocumentRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| Document |
getDocumentCallable()
public final UnaryCallable<GetDocumentRequest,Document> getDocumentCallable()Gets a single document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
GetDocumentRequest request =
GetDocumentRequest.newBuilder()
.setName("name3373707")
.setMask(DocumentMask.newBuilder().build())
.build();
ApiFuture<Document> future = firestoreClient.getDocumentCallable().futureCall(request);
// Do something.
Document response = future.get();
}
| Type | Description |
| UnaryCallable<GetDocumentRequest,Document> |
getSettings()
public final FirestoreSettings getSettings()| Type | Description |
| FirestoreSettings |
getStub()
public FirestoreStub getStub()| Type | Description |
| FirestoreStub |
isShutdown()
public boolean isShutdown()| Type | Description |
| boolean |
isTerminated()
public boolean isTerminated()| Type | Description |
| boolean |
listCollectionIds(ListCollectionIdsRequest request)
public final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(ListCollectionIdsRequest request)Lists all the collection IDs underneath a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListCollectionIdsRequest request =
ListCollectionIdsRequest.newBuilder()
.setParent("parent-995424086")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.build();
for (String element : firestoreClient.listCollectionIds(request).iterateAll()) {
// doThingsWith(element);
}
}
| Name | Description |
| request | ListCollectionIdsRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| FirestoreClient.ListCollectionIdsPagedResponse |
listCollectionIds(String parent)
public final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(String parent)Lists all the collection IDs underneath a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String parent = "parent-995424086";
for (String element : firestoreClient.listCollectionIds(parent).iterateAll()) {
// doThingsWith(element);
}
}
| Name | Description |
| parent | StringRequired. The parent document. In the format:
|
| Type | Description |
| FirestoreClient.ListCollectionIdsPagedResponse |
listCollectionIdsCallable()
public final UnaryCallable<ListCollectionIdsRequest,ListCollectionIdsResponse> listCollectionIdsCallable()Lists all the collection IDs underneath a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListCollectionIdsRequest request =
ListCollectionIdsRequest.newBuilder()
.setParent("parent-995424086")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.build();
while (true) {
ListCollectionIdsResponse response =
firestoreClient.listCollectionIdsCallable().call(request);
for (String element : response.getResponsesList()) {
// doThingsWith(element);
}
String nextPageToken = response.getNextPageToken();
if (!Strings.isNullOrEmpty(nextPageToken)) {
request = request.toBuilder().setPageToken(nextPageToken).build();
} else {
break;
}
}
}
| Type | Description |
| UnaryCallable<ListCollectionIdsRequest,ListCollectionIdsResponse> |
listCollectionIdsPagedCallable()
public final UnaryCallable<ListCollectionIdsRequest,FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable()Lists all the collection IDs underneath a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListCollectionIdsRequest request =
ListCollectionIdsRequest.newBuilder()
.setParent("parent-995424086")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.build();
ApiFuture<String> future =
firestoreClient.listCollectionIdsPagedCallable().futureCall(request);
// Do something.
for (String element : future.get().iterateAll()) {
// doThingsWith(element);
}
}
| Type | Description |
| UnaryCallable<ListCollectionIdsRequest,ListCollectionIdsPagedResponse> |
listDocuments(ListDocumentsRequest request)
public final FirestoreClient.ListDocumentsPagedResponse listDocuments(ListDocumentsRequest request)Lists documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListDocumentsRequest request =
ListDocumentsRequest.newBuilder()
.setParent("parent-995424086")
.setCollectionId("collectionId1636075609")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.setOrderBy("orderBy-1207110587")
.setMask(DocumentMask.newBuilder().build())
.setShowMissing(true)
.build();
for (Document element : firestoreClient.listDocuments(request).iterateAll()) {
// doThingsWith(element);
}
}
| Name | Description |
| request | ListDocumentsRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| FirestoreClient.ListDocumentsPagedResponse |
listDocumentsCallable()
public final UnaryCallable<ListDocumentsRequest,ListDocumentsResponse> listDocumentsCallable()Lists documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListDocumentsRequest request =
ListDocumentsRequest.newBuilder()
.setParent("parent-995424086")
.setCollectionId("collectionId1636075609")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.setOrderBy("orderBy-1207110587")
.setMask(DocumentMask.newBuilder().build())
.setShowMissing(true)
.build();
while (true) {
ListDocumentsResponse response = firestoreClient.listDocumentsCallable().call(request);
for (Document element : response.getResponsesList()) {
// doThingsWith(element);
}
String nextPageToken = response.getNextPageToken();
if (!Strings.isNullOrEmpty(nextPageToken)) {
request = request.toBuilder().setPageToken(nextPageToken).build();
} else {
break;
}
}
}
| Type | Description |
| UnaryCallable<ListDocumentsRequest,ListDocumentsResponse> |
listDocumentsPagedCallable()
public final UnaryCallable<ListDocumentsRequest,FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable()Lists documents.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
ListDocumentsRequest request =
ListDocumentsRequest.newBuilder()
.setParent("parent-995424086")
.setCollectionId("collectionId1636075609")
.setPageSize(883849137)
.setPageToken("pageToken873572522")
.setOrderBy("orderBy-1207110587")
.setMask(DocumentMask.newBuilder().build())
.setShowMissing(true)
.build();
ApiFuture<Document> future = firestoreClient.listDocumentsPagedCallable().futureCall(request);
// Do something.
for (Document element : future.get().iterateAll()) {
// doThingsWith(element);
}
}
| Type | Description |
| UnaryCallable<ListDocumentsRequest,ListDocumentsPagedResponse> |
listenCallable()
public final BidiStreamingCallable<ListenRequest,ListenResponse> listenCallable()Listens to changes.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BidiStream| Type | Description |
| BidiStreamingCallable<ListenRequest,ListenResponse> |
partitionQuery(PartitionQueryRequest request)
public final FirestoreClient.PartitionQueryPagedResponse partitionQuery(PartitionQueryRequest request)Partitions a query by returning partition cursors that can be used to run the query in parallel. The returned partition cursors are split points that can be used by RunQuery as starting/end points for the query results.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
PartitionQueryRequest request =
PartitionQueryRequest.newBuilder()
.setParent("parent-995424086")
.setPartitionCount(-1738969222)
.setPageToken("pageToken873572522")
.setPageSize(883849137)
.build();
for (Cursor element : firestoreClient.partitionQuery(request).iterateAll()) {
// doThingsWith(element);
}
}
| Name | Description |
| request | PartitionQueryRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| FirestoreClient.PartitionQueryPagedResponse |
partitionQueryCallable()
public final UnaryCallable<PartitionQueryRequest,PartitionQueryResponse> partitionQueryCallable()Partitions a query by returning partition cursors that can be used to run the query in parallel. The returned partition cursors are split points that can be used by RunQuery as starting/end points for the query results.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
PartitionQueryRequest request =
PartitionQueryRequest.newBuilder()
.setParent("parent-995424086")
.setPartitionCount(-1738969222)
.setPageToken("pageToken873572522")
.setPageSize(883849137)
.build();
while (true) {
PartitionQueryResponse response = firestoreClient.partitionQueryCallable().call(request);
for (Cursor element : response.getResponsesList()) {
// doThingsWith(element);
}
String nextPageToken = response.getNextPageToken();
if (!Strings.isNullOrEmpty(nextPageToken)) {
request = request.toBuilder().setPageToken(nextPageToken).build();
} else {
break;
}
}
}
| Type | Description |
| UnaryCallable<PartitionQueryRequest,PartitionQueryResponse> |
partitionQueryPagedCallable()
public final UnaryCallable<PartitionQueryRequest,FirestoreClient.PartitionQueryPagedResponse> partitionQueryPagedCallable()Partitions a query by returning partition cursors that can be used to run the query in parallel. The returned partition cursors are split points that can be used by RunQuery as starting/end points for the query results.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
PartitionQueryRequest request =
PartitionQueryRequest.newBuilder()
.setParent("parent-995424086")
.setPartitionCount(-1738969222)
.setPageToken("pageToken873572522")
.setPageSize(883849137)
.build();
ApiFuture<Cursor> future = firestoreClient.partitionQueryPagedCallable().futureCall(request);
// Do something.
for (Cursor element : future.get().iterateAll()) {
// doThingsWith(element);
}
}
| Type | Description |
| UnaryCallable<PartitionQueryRequest,PartitionQueryPagedResponse> |
rollback(RollbackRequest request)
public final void rollback(RollbackRequest request)Rolls back a transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
RollbackRequest request =
RollbackRequest.newBuilder()
.setDatabase("database1789464955")
.setTransaction(ByteString.EMPTY)
.build();
firestoreClient.rollback(request);
}
| Name | Description |
| request | RollbackRequestThe request object containing all of the parameters for the API call. |
rollback(String database, ByteString transaction)
public final void rollback(String database, ByteString transaction)Rolls back a transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String database = "database1789464955";
ByteString transaction = ByteString.EMPTY;
firestoreClient.rollback(database, transaction);
}
| Name | Description |
| database | StringRequired. The database name. In the format:
|
| transaction | ByteStringRequired. The transaction to roll back. |
rollbackCallable()
public final UnaryCallable<RollbackRequest,Empty> rollbackCallable()Rolls back a transaction.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
RollbackRequest request =
RollbackRequest.newBuilder()
.setDatabase("database1789464955")
.setTransaction(ByteString.EMPTY)
.build();
ApiFuture<Empty> future = firestoreClient.rollbackCallable().futureCall(request);
// Do something.
future.get();
}
| Type | Description |
| UnaryCallable<RollbackRequest,Empty> |
runQueryCallable()
public final ServerStreamingCallable<RunQueryRequest,RunQueryResponse> runQueryCallable()Runs a query.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
RunQueryRequest request = RunQueryRequest.newBuilder().setParent("parent-995424086").build();
ServerStream| Type | Description |
| ServerStreamingCallable<RunQueryRequest,RunQueryResponse> |
shutdown()
public void shutdown()shutdownNow()
public void shutdownNow()updateDocument(Document document, DocumentMask updateMask)
public final Document updateDocument(Document document, DocumentMask updateMask)Updates or inserts a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
Document document = Document.newBuilder().build();
DocumentMask updateMask = DocumentMask.newBuilder().build();
Document response = firestoreClient.updateDocument(document, updateMask);
}
| Name | Description |
| document | DocumentRequired. The updated document. Creates the document if it does not already exist. |
| updateMask | DocumentMaskThe fields to update. None of the field paths in the mask may contain a reserved name. If the document exists on the server and has fields not referenced in the mask, they are left unchanged. Fields referenced in the mask, but not present in the input document, are deleted from the document on the server. |
| Type | Description |
| Document |
updateDocument(UpdateDocumentRequest request)
public final Document updateDocument(UpdateDocumentRequest request)Updates or inserts a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
UpdateDocumentRequest request =
UpdateDocumentRequest.newBuilder()
.setDocument(Document.newBuilder().build())
.setUpdateMask(DocumentMask.newBuilder().build())
.setMask(DocumentMask.newBuilder().build())
.setCurrentDocument(Precondition.newBuilder().build())
.build();
Document response = firestoreClient.updateDocument(request);
}
| Name | Description |
| request | UpdateDocumentRequestThe request object containing all of the parameters for the API call. |
| Type | Description |
| Document |
updateDocumentCallable()
public final UnaryCallable<UpdateDocumentRequest,Document> updateDocumentCallable()Updates or inserts a document.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
UpdateDocumentRequest request =
UpdateDocumentRequest.newBuilder()
.setDocument(Document.newBuilder().build())
.setUpdateMask(DocumentMask.newBuilder().build())
.setMask(DocumentMask.newBuilder().build())
.setCurrentDocument(Precondition.newBuilder().build())
.build();
ApiFuture<Document> future = firestoreClient.updateDocumentCallable().futureCall(request);
// Do something.
Document response = future.get();
}
| Type | Description |
| UnaryCallable<UpdateDocumentRequest,Document> |
writeCallable()
public final BidiStreamingCallable<WriteRequest,WriteResponse> writeCallable()Streams batches of document updates and deletes, in order.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BidiStream| Type | Description |
| BidiStreamingCallable<WriteRequest,WriteResponse> |