Class FirestoreClient

java.lang.Object
com.google.cloud.firestore.v1.FirestoreClient
All Implemented Interfaces:
com.google.api.gax.core.BackgroundResource, AutoCloseable

@Generated("by gapic-generator-java") public class FirestoreClient extends Object implements com.google.api.gax.core.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 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:

  1. 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.
  2. 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.
  3. 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.

  • Constructor Details

    • FirestoreClient

      protected FirestoreClient(FirestoreSettings settings) throws IOException
      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

      protected FirestoreClient(FirestoreStub stub)
  • Method Details

    • create

      public static final FirestoreClient create() throws IOException
      Constructs an instance of FirestoreClient with default settings.
      Throws:
      IOException
    • create

      public static final FirestoreClient create(FirestoreSettings settings) throws IOException
      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

      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).
    • getSettings

      public final FirestoreSettings getSettings()
    • getStub

      public FirestoreStub getStub()
    • getDocument

      public final Document getDocument(GetDocumentRequest request)
      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

      public final Document updateDocument(Document document, DocumentMask updateMask)
      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

      public final Document updateDocument(UpdateDocumentRequest request)
      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

      public final void deleteDocument(String name)
      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

      public final void deleteDocument(DeleteDocumentRequest request)
      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

      public final BeginTransactionResponse beginTransaction(String database)
      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

      public final BeginTransactionResponse beginTransaction(BeginTransactionRequest request)
      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

      public final CommitResponse commit(String database, List<Write> writes)
      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

      public final CommitResponse commit(CommitRequest request)
      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

      public final com.google.api.gax.rpc.UnaryCallable<CommitRequest,CommitResponse> 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

      public final void rollback(String database, com.google.protobuf.ByteString transaction)
      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

      public final void rollback(RollbackRequest request)
      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

      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

      public final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(String parent)
      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

      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

      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][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

      public final Document createDocument(CreateDocumentRequest request)
      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:
      close in interface AutoCloseable
    • shutdown

      public void shutdown()
      Specified by:
      shutdown in interface com.google.api.gax.core.BackgroundResource
    • isShutdown

      public boolean isShutdown()
      Specified by:
      isShutdown in interface com.google.api.gax.core.BackgroundResource
    • isTerminated

      public boolean isTerminated()
      Specified by:
      isTerminated in interface com.google.api.gax.core.BackgroundResource
    • shutdownNow

      public void shutdownNow()
      Specified by:
      shutdownNow in interface com.google.api.gax.core.BackgroundResource
    • awaitTermination

      public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException
      Specified by:
      awaitTermination in interface com.google.api.gax.core.BackgroundResource
      Throws:
      InterruptedException