public class FirestoreClient implements BackgroundResource
Service 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<BatchGetDocumentsResponse> stream =
firestoreClient.batchGetDocumentsCallable().call(request);
for (BatchGetDocumentsResponse response : stream) {
// Do something when a response is received.
}
}
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<String, String>())
.build();
BatchWriteResponse response = firestoreClient.batchWrite(request);
}
Name | Description |
request | BatchWriteRequest The 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<String, String>())
.build();
ApiFuture<BatchWriteResponse> future =
firestoreClient.batchWriteCallable().futureCall(request);
// Do something.
BatchWriteResponse response = future.get();
}
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 | BeginTransactionRequest The 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 | String Required. 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<BeginTransactionResponse> future =
firestoreClient.beginTransactionCallable().futureCall(request);
// Do something.
BeginTransactionResponse response = future.get();
}
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 | CommitRequest The 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 | String Required. 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<CommitResponse> future = firestoreClient.commitCallable().futureCall(request);
// Do something.
CommitResponse response = future.get();
}
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 | CreateDocumentRequest The 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 | DeleteDocumentRequest The 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 | String Required. 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 | GetDocumentRequest The 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 | ListCollectionIdsRequest The 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 | String Required. 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 | ListDocumentsRequest The 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<ListenRequest, ListenResponse> bidiStream =
firestoreClient.listenCallable().call();
ListenRequest request =
ListenRequest.newBuilder()
.setDatabase("database1789464955")
.putAllLabels(new HashMap<String, String>())
.build();
bidiStream.send(request);
for (ListenResponse response : bidiStream) {
// Do something when a response is received.
}
}
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 | PartitionQueryRequest The 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 | RollbackRequest The 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 | String Required. The database name. In the format:
|
transaction | ByteString Required. 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<RunQueryResponse> stream = firestoreClient.runQueryCallable().call(request);
for (RunQueryResponse response : stream) {
// Do something when a response is received.
}
}
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 | Document Required. The updated document. Creates the document if it does not already exist. |
updateMask | DocumentMask The 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 | UpdateDocumentRequest The 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<WriteRequest, WriteResponse> bidiStream = firestoreClient.writeCallable().call();
WriteRequest request =
WriteRequest.newBuilder()
.setDatabase("database1789464955")
.setStreamId("streamId1790933179")
.addAllWrites(new ArrayList<Write>())
.setStreamToken(ByteString.EMPTY)
.putAllLabels(new HashMap<String, String>())
.build();
bidiStream.send(request);
for (WriteResponse response : bidiStream) {
// Do something when a response is received.
}
}
Type | Description |
BidiStreamingCallable<WriteRequest,WriteResponse> |