Class FirestoreClient
- All Implemented Interfaces:
com.google.api.gax.core.BackgroundResource,AutoCloseable
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 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:
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
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:
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
.build();
FirestoreClient firestoreClient = FirestoreClient.create(firestoreSettings);
To customize the endpoint:
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder().setEndpoint(myEndpoint).build();
FirestoreClient firestoreClient = FirestoreClient.create(firestoreSettings);
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over the wire:
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
FirestoreSettings firestoreSettings = FirestoreSettings.newHttpJsonBuilder().build();
FirestoreClient firestoreClient = FirestoreClient.create(firestoreSettings);
Please refer to the GitHub repository's samples for more quickstart code snippets.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic classstatic classstatic classstatic classstatic classstatic class -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFirestoreClient(FirestoreSettings settings) Constructs an instance of FirestoreClient, using the given settings.protectedFirestoreClient(FirestoreStub stub) -
Method Summary
Modifier and TypeMethodDescriptionbooleanawaitTermination(long duration, TimeUnit unit) final com.google.api.gax.rpc.ServerStreamingCallable<BatchGetDocumentsRequest,BatchGetDocumentsResponse> Gets multiple documents.final BatchWriteResponsebatchWrite(BatchWriteRequest request) Applies a batch of write operations.final com.google.api.gax.rpc.UnaryCallable<BatchWriteRequest,BatchWriteResponse> Applies a batch of write operations.final BeginTransactionResponsebeginTransaction(BeginTransactionRequest request) Starts a new transaction.final BeginTransactionResponsebeginTransaction(String database) Starts a new transaction.final com.google.api.gax.rpc.UnaryCallable<BeginTransactionRequest,BeginTransactionResponse> Starts a new transaction.final voidclose()final CommitResponsecommit(CommitRequest request) Commits a transaction, while optionally updating documents.final CommitResponseCommits a transaction, while optionally updating documents.final com.google.api.gax.rpc.UnaryCallable<CommitRequest,CommitResponse> Commits a transaction, while optionally updating documents.static final FirestoreClientcreate()Constructs an instance of FirestoreClient with default settings.static final FirestoreClientcreate(FirestoreSettings settings) Constructs an instance of FirestoreClient, using the given settings.static final FirestoreClientcreate(FirestoreStub stub) Constructs an instance of FirestoreClient, using the given stub for making calls.final DocumentcreateDocument(CreateDocumentRequest request) Creates a new document.final com.google.api.gax.rpc.UnaryCallable<CreateDocumentRequest,Document> Creates a new document.final voiddeleteDocument(DeleteDocumentRequest request) Deletes a document.final voiddeleteDocument(String name) Deletes a document.final com.google.api.gax.rpc.UnaryCallable<DeleteDocumentRequest,com.google.protobuf.Empty> Deletes a document.final DocumentgetDocument(GetDocumentRequest request) Gets a single document.final com.google.api.gax.rpc.UnaryCallable<GetDocumentRequest,Document> Gets a single document.final FirestoreSettingsgetStub()booleanbooleanLists all the collection IDs underneath a document.listCollectionIds(String parent) Lists all the collection IDs underneath a document.final com.google.api.gax.rpc.UnaryCallable<ListCollectionIdsRequest,ListCollectionIdsResponse> Lists all the collection IDs underneath a document.final com.google.api.gax.rpc.UnaryCallable<ListCollectionIdsRequest,FirestoreClient.ListCollectionIdsPagedResponse> Lists all the collection IDs underneath a document.listDocuments(ListDocumentsRequest request) Lists documents.final com.google.api.gax.rpc.UnaryCallable<ListDocumentsRequest,ListDocumentsResponse> Lists documents.final com.google.api.gax.rpc.UnaryCallable<ListDocumentsRequest,FirestoreClient.ListDocumentsPagedResponse> Lists documents.final com.google.api.gax.rpc.BidiStreamingCallable<ListenRequest,ListenResponse> Listens to changes.partitionQuery(PartitionQueryRequest request) Partitions a query by returning partition cursors that can be used to run the query in parallel.final com.google.api.gax.rpc.UnaryCallable<PartitionQueryRequest,PartitionQueryResponse> Partitions a query by returning partition cursors that can be used to run the query in parallel.final com.google.api.gax.rpc.UnaryCallable<PartitionQueryRequest,FirestoreClient.PartitionQueryPagedResponse> Partitions a query by returning partition cursors that can be used to run the query in parallel.final voidrollback(RollbackRequest request) Rolls back a transaction.final voidRolls back a transaction.final com.google.api.gax.rpc.UnaryCallable<RollbackRequest,com.google.protobuf.Empty> Rolls back a transaction.final com.google.api.gax.rpc.ServerStreamingCallable<RunAggregationQueryRequest,RunAggregationQueryResponse> Runs an aggregation query.final com.google.api.gax.rpc.ServerStreamingCallable<RunQueryRequest,RunQueryResponse> Runs a query.voidshutdown()voidfinal DocumentupdateDocument(Document document, DocumentMask updateMask) Updates or inserts a document.final DocumentupdateDocument(UpdateDocumentRequest request) Updates or inserts a document.final com.google.api.gax.rpc.UnaryCallable<UpdateDocumentRequest,Document> Updates or inserts a document.final com.google.api.gax.rpc.BidiStreamingCallable<WriteRequest,WriteResponse> Streams batches of document updates and deletes, in order.
-
Constructor Details
-
FirestoreClient
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.- Throws:
IOException
-
FirestoreClient
-
-
Method Details
-
create
Constructs an instance of FirestoreClient with default settings.- Throws:
IOException
-
create
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.- Throws:
IOException
-
create
Constructs an instance of FirestoreClient, using the given stub for making calls. This is for advanced usage - prefer using create(FirestoreSettings). -
getSettings
-
getStub
-
getDocument
Gets a single document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { GetDocumentRequest request = GetDocumentRequest.newBuilder() .setName("name3373707") .setMask(DocumentMask.newBuilder().build()) .build(); Document response = firestoreClient.getDocument(request); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
getDocumentCallable
public final com.google.api.gax.rpc.UnaryCallable<GetDocumentRequest,Document> getDocumentCallable()Gets a single document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
listDocuments
Lists documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
listDocumentsPagedCallable
public final com.google.api.gax.rpc.UnaryCallable<ListDocumentsRequest,FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable()Lists documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } } -
listDocumentsCallable
public final com.google.api.gax.rpc.UnaryCallable<ListDocumentsRequest,ListDocumentsResponse> listDocumentsCallable()Lists documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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.getDocumentsList()) { // doThingsWith(element); } String nextPageToken = response.getNextPageToken(); if (!Strings.isNullOrEmpty(nextPageToken)) { request = request.toBuilder().setPageToken(nextPageToken).build(); } else { break; } } } -
updateDocument
Updates or inserts a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { Document document = Document.newBuilder().build(); DocumentMask updateMask = DocumentMask.newBuilder().build(); Document response = firestoreClient.updateDocument(document, updateMask); }- Parameters:
document- Required. The updated document. Creates the document if it does not already exist.updateMask- 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.
- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
updateDocument
Updates or inserts a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
updateDocumentCallable
public final com.google.api.gax.rpc.UnaryCallable<UpdateDocumentRequest,Document> updateDocumentCallable()Updates or inserts a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
deleteDocument
Deletes a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { String name = "name3373707"; firestoreClient.deleteDocument(name); }- Parameters:
name- Required. The resource name of the Document to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
deleteDocument
Deletes a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { DeleteDocumentRequest request = DeleteDocumentRequest.newBuilder() .setName("name3373707") .setCurrentDocument(Precondition.newBuilder().build()) .build(); firestoreClient.deleteDocument(request); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
deleteDocumentCallable
public final com.google.api.gax.rpc.UnaryCallable<DeleteDocumentRequest,com.google.protobuf.Empty> deleteDocumentCallable()Deletes a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
batchGetDocumentsCallable
public final com.google.api.gax.rpc.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:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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. } } -
beginTransaction
Starts a new transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { String database = "database1789464955"; BeginTransactionResponse response = firestoreClient.beginTransaction(database); }- Parameters:
database- Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
beginTransaction
Starts a new transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { BeginTransactionRequest request = BeginTransactionRequest.newBuilder() .setDatabase("database1789464955") .setOptions(TransactionOptions.newBuilder().build()) .build(); BeginTransactionResponse response = firestoreClient.beginTransaction(request); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
beginTransactionCallable
public final com.google.api.gax.rpc.UnaryCallable<BeginTransactionRequest,BeginTransactionResponse> beginTransactionCallable()Starts a new transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
commit
Commits a transaction, while optionally updating documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { String database = "database1789464955"; List<Write> writes = new ArrayList<>(); CommitResponse response = firestoreClient.commit(database, writes); }- Parameters:
database- Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.writes- The writes to apply.Always executed atomically and in order.
- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
commit
Commits a transaction, while optionally updating documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { CommitRequest request = CommitRequest.newBuilder() .setDatabase("database1789464955") .addAllWrites(new ArrayList<Write>()) .setTransaction(ByteString.EMPTY) .build(); CommitResponse response = firestoreClient.commit(request); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
commitCallable
Commits a transaction, while optionally updating documents.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
rollback
Rolls back a transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { String database = "database1789464955"; ByteString transaction = ByteString.EMPTY; firestoreClient.rollback(database, transaction); }- Parameters:
database- Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.transaction- Required. The transaction to roll back.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
rollback
Rolls back a transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { RollbackRequest request = RollbackRequest.newBuilder() .setDatabase("database1789464955") .setTransaction(ByteString.EMPTY) .build(); firestoreClient.rollback(request); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
rollbackCallable
public final com.google.api.gax.rpc.UnaryCallable<RollbackRequest,com.google.protobuf.Empty> rollbackCallable()Rolls back a transaction.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
runQueryCallable
public final com.google.api.gax.rpc.ServerStreamingCallable<RunQueryRequest,RunQueryResponse> runQueryCallable()Runs a query.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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. } } -
runAggregationQueryCallable
public final com.google.api.gax.rpc.ServerStreamingCallable<RunAggregationQueryRequest,RunAggregationQueryResponse> runAggregationQueryCallable()Runs an aggregation query.Rather than producing [Document][google.firestore.v1.Document] results like [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery], this API allows running an aggregation to produce a series of [AggregationResult][google.firestore.v1.AggregationResult] server-side.
High-Level Example:
``` -- Return the number of documents in table given a filter. SELECT COUNT(*) FROM ( SELECT * FROM k where a = true ); ```
Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { RunAggregationQueryRequest request = RunAggregationQueryRequest.newBuilder().setParent("parent-995424086").build(); ServerStream<RunAggregationQueryResponse> stream = firestoreClient.runAggregationQueryCallable().call(request); for (RunAggregationQueryResponse response : stream) { // Do something when a response is received. } } -
partitionQuery
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:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
partitionQueryPagedCallable
public final com.google.api.gax.rpc.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:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } } -
partitionQueryCallable
public final com.google.api.gax.rpc.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:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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.getPartitionsList()) { // doThingsWith(element); } String nextPageToken = response.getNextPageToken(); if (!Strings.isNullOrEmpty(nextPageToken)) { request = request.toBuilder().setPageToken(nextPageToken).build(); } else { break; } } } -
writeCallable
public final com.google.api.gax.rpc.BidiStreamingCallable<WriteRequest,WriteResponse> writeCallable()Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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. } } -
listenCallable
public final com.google.api.gax.rpc.BidiStreamingCallable<ListenRequest,ListenResponse> listenCallable()Listens to changes. This method is only available via gRPC or WebChannel (not REST).Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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. } } -
listCollectionIds
Lists all the collection IDs underneath a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library try (FirestoreClient firestoreClient = FirestoreClient.create()) { String parent = "parent-995424086"; for (String element : firestoreClient.listCollectionIds(parent).iterateAll()) { // doThingsWith(element); } }- Parameters:
parent- Required. The parent document. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
listCollectionIds
public final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(ListCollectionIdsRequest request) Lists all the collection IDs underneath a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
listCollectionIdsPagedCallable
public final com.google.api.gax.rpc.UnaryCallable<ListCollectionIdsRequest,FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable()Lists all the collection IDs underneath a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); } } -
listCollectionIdsCallable
public final com.google.api.gax.rpc.UnaryCallable<ListCollectionIdsRequest,ListCollectionIdsResponse> listCollectionIdsCallable()Lists all the collection IDs underneath a document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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.getCollectionIdsList()) { // doThingsWith(element); } String nextPageToken = response.getNextPageToken(); if (!Strings.isNullOrEmpty(nextPageToken)) { request = request.toBuilder().setPageToken(nextPageToken).build(); } else { break; } } } -
batchWrite
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][google.firestore.v1.BatchWriteResponse] for the success status of each write.
If you require an atomically applied set of writes, use [Commit][google.firestore.v1.Firestore.Commit] instead.
Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
batchWriteCallable
public final com.google.api.gax.rpc.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][google.firestore.v1.BatchWriteResponse] for the success status of each write.
If you require an atomically applied set of writes, use [Commit][google.firestore.v1.Firestore.Commit] instead.
Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
createDocument
Creates a new document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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); }- Parameters:
request- The request object containing all of the parameters for the API call.- Throws:
com.google.api.gax.rpc.ApiException- if the remote call fails
-
createDocumentCallable
public final com.google.api.gax.rpc.UnaryCallable<CreateDocumentRequest,Document> createDocumentCallable()Creates a new document.Sample code:
// This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 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(); } -
close
public final void close()- Specified by:
closein interfaceAutoCloseable
-
shutdown
public void shutdown()- Specified by:
shutdownin interfacecom.google.api.gax.core.BackgroundResource
-
isShutdown
public boolean isShutdown()- Specified by:
isShutdownin interfacecom.google.api.gax.core.BackgroundResource
-
isTerminated
public boolean isTerminated()- Specified by:
isTerminatedin interfacecom.google.api.gax.core.BackgroundResource
-
shutdownNow
public void shutdownNow()- Specified by:
shutdownNowin interfacecom.google.api.gax.core.BackgroundResource
-
awaitTermination
- Specified by:
awaitTerminationin interfacecom.google.api.gax.core.BackgroundResource- Throws:
InterruptedException
-