Class FirestoreAdminClient (3.1.0)

public class FirestoreAdminClient implements BackgroundResource

Service Description: The Cloud Firestore Admin API.

This API provides several administrative services for Cloud Firestore.

Project, Database, Namespace, Collection, Collection Group, and Document are used as defined in the Google Cloud Firestore API.

Operation: An Operation represents work being performed in the background.

The index service manages Cloud Firestore indexes.

Index creation is performed asynchronously. An Operation resource is created for each such asynchronous operation. The state of the operation (including any errors encountered) may be queried via the Operation resource.

The Operations collection provides a record of actions performed for the specified Project (including any Operations in progress). Operations are not created directly but through calls on other collections or resources.

An Operation that is done may be deleted so that it is no longer listed as part of the Operation collection. Operations are garbage collected after 30 days. By default, ListOperations will only return in progress and failed operations. To list completed operation, issue a ListOperations request with the filter done: true.

Operations are created by service FirestoreAdmin, but are accessed via service google.longrunning.Operations.

This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   IndexName name = IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]");
   Index response = firestoreAdminClient.getIndex(name);
 }
 

Note: close() needs to be called on the FirestoreAdminClient 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 FirestoreAdminSettings to create(). For example:

To customize credentials:


 FirestoreAdminSettings firestoreAdminSettings =
     FirestoreAdminSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create(firestoreAdminSettings);
 

To customize the endpoint:


 FirestoreAdminSettings firestoreAdminSettings =
     FirestoreAdminSettings.newBuilder().setEndpoint(myEndpoint).build();
 FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create(firestoreAdminSettings);
 

Please refer to the GitHub repository's samples for more quickstart code snippets.

Inheritance

java.lang.Object > FirestoreAdminClient

Implements

BackgroundResource

Static Methods

create()

public static final FirestoreAdminClient create()

Constructs an instance of FirestoreAdminClient with default settings.

Returns
TypeDescription
FirestoreAdminClient
Exceptions
TypeDescription
IOException

create(FirestoreAdminSettings settings)

public static final FirestoreAdminClient create(FirestoreAdminSettings settings)

Constructs an instance of FirestoreAdminClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.

Parameter
NameDescription
settingsFirestoreAdminSettings
Returns
TypeDescription
FirestoreAdminClient
Exceptions
TypeDescription
IOException

create(FirestoreAdminStub stub)

public static final FirestoreAdminClient create(FirestoreAdminStub stub)

Constructs an instance of FirestoreAdminClient, using the given stub for making calls. This is for advanced usage - prefer using create(FirestoreAdminSettings).

Parameter
NameDescription
stubFirestoreAdminStub
Returns
TypeDescription
FirestoreAdminClient

Constructors

FirestoreAdminClient(FirestoreAdminSettings settings)

protected FirestoreAdminClient(FirestoreAdminSettings settings)

Constructs an instance of FirestoreAdminClient, 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.

Parameter
NameDescription
settingsFirestoreAdminSettings

FirestoreAdminClient(FirestoreAdminStub stub)

protected FirestoreAdminClient(FirestoreAdminStub stub)
Parameter
NameDescription
stubFirestoreAdminStub

Methods

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
NameDescription
durationlong
unitTimeUnit
Returns
TypeDescription
boolean
Exceptions
TypeDescription
InterruptedException

close()

public final void close()

createIndexAsync(CollectionGroupName parent, Index index)

public final OperationFuture<Index,IndexOperationMetadata> createIndexAsync(CollectionGroupName parent, Index index)

Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CollectionGroupName parent =
       CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]");
   Index index = Index.newBuilder().build();
   Index response = firestoreAdminClient.createIndexAsync(parent, index).get();
 }
 
Parameters
NameDescription
parentCollectionGroupName

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

indexIndex

Required. The composite index to create.

Returns
TypeDescription
OperationFuture<Index,IndexOperationMetadata>

createIndexAsync(CreateIndexRequest request)

public final OperationFuture<Index,IndexOperationMetadata> createIndexAsync(CreateIndexRequest request)

Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CreateIndexRequest request =
       CreateIndexRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setIndex(Index.newBuilder().build())
           .build();
   Index response = firestoreAdminClient.createIndexAsync(request).get();
 }
 
Parameter
NameDescription
requestCreateIndexRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<Index,IndexOperationMetadata>

createIndexAsync(String parent, Index index)

public final OperationFuture<Index,IndexOperationMetadata> createIndexAsync(String parent, Index index)

Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String parent = CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString();
   Index index = Index.newBuilder().build();
   Index response = firestoreAdminClient.createIndexAsync(parent, index).get();
 }
 
Parameters
NameDescription
parentString

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

indexIndex

Required. The composite index to create.

Returns
TypeDescription
OperationFuture<Index,IndexOperationMetadata>

createIndexCallable()

public final UnaryCallable<CreateIndexRequest,Operation> createIndexCallable()

Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CreateIndexRequest request =
       CreateIndexRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setIndex(Index.newBuilder().build())
           .build();
   ApiFuture<Operation> future = firestoreAdminClient.createIndexCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<CreateIndexRequest,Operation>

createIndexOperationCallable()

public final OperationCallable<CreateIndexRequest,Index,IndexOperationMetadata> createIndexOperationCallable()

Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CreateIndexRequest request =
       CreateIndexRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setIndex(Index.newBuilder().build())
           .build();
   OperationFuture<Index, IndexOperationMetadata> future =
       firestoreAdminClient.createIndexOperationCallable().futureCall(request);
   // Do something.
   Index response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<CreateIndexRequest,Index,IndexOperationMetadata>

deleteIndex(DeleteIndexRequest request)

public final void deleteIndex(DeleteIndexRequest request)

Deletes a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   DeleteIndexRequest request =
       DeleteIndexRequest.newBuilder()
           .setName(
               IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString())
           .build();
   firestoreAdminClient.deleteIndex(request);
 }
 
Parameter
NameDescription
requestDeleteIndexRequest

The request object containing all of the parameters for the API call.

deleteIndex(IndexName name)

public final void deleteIndex(IndexName name)

Deletes a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   IndexName name = IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]");
   firestoreAdminClient.deleteIndex(name);
 }
 
Parameter
NameDescription
nameIndexName

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

deleteIndex(String name)

public final void deleteIndex(String name)

Deletes a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString();
   firestoreAdminClient.deleteIndex(name);
 }
 
Parameter
NameDescription
nameString

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

deleteIndexCallable()

public final UnaryCallable<DeleteIndexRequest,Empty> deleteIndexCallable()

Deletes a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   DeleteIndexRequest request =
       DeleteIndexRequest.newBuilder()
           .setName(
               IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString())
           .build();
   ApiFuture<Empty> future = firestoreAdminClient.deleteIndexCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
UnaryCallable<DeleteIndexRequest,Empty>

exportDocumentsAsync(DatabaseName name)

public final OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata> exportDocumentsAsync(DatabaseName name)

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   DatabaseName name = DatabaseName.of("[PROJECT]", "[DATABASE]");
   ExportDocumentsResponse response = firestoreAdminClient.exportDocumentsAsync(name).get();
 }
 
Parameter
NameDescription
nameDatabaseName

Required. Database to export. Should be of the form: projects/{project_id}/databases/{database_id}.

Returns
TypeDescription
OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata>

exportDocumentsAsync(ExportDocumentsRequest request)

public final OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata> exportDocumentsAsync(ExportDocumentsRequest request)

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ExportDocumentsRequest request =
       ExportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setOutputUriPrefix("outputUriPrefix499858205")
           .build();
   ExportDocumentsResponse response = firestoreAdminClient.exportDocumentsAsync(request).get();
 }
 
Parameter
NameDescription
requestExportDocumentsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata>

exportDocumentsAsync(String name)

public final OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata> exportDocumentsAsync(String name)

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = DatabaseName.of("[PROJECT]", "[DATABASE]").toString();
   ExportDocumentsResponse response = firestoreAdminClient.exportDocumentsAsync(name).get();
 }
 
Parameter
NameDescription
nameString

Required. Database to export. Should be of the form: projects/{project_id}/databases/{database_id}.

Returns
TypeDescription
OperationFuture<ExportDocumentsResponse,ExportDocumentsMetadata>

exportDocumentsCallable()

public final UnaryCallable<ExportDocumentsRequest,Operation> exportDocumentsCallable()

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ExportDocumentsRequest request =
       ExportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setOutputUriPrefix("outputUriPrefix499858205")
           .build();
   ApiFuture<Operation> future =
       firestoreAdminClient.exportDocumentsCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<ExportDocumentsRequest,Operation>

exportDocumentsOperationCallable()

public final OperationCallable<ExportDocumentsRequest,ExportDocumentsResponse,ExportDocumentsMetadata> exportDocumentsOperationCallable()

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ExportDocumentsRequest request =
       ExportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setOutputUriPrefix("outputUriPrefix499858205")
           .build();
   OperationFuture<ExportDocumentsResponse, ExportDocumentsMetadata> future =
       firestoreAdminClient.exportDocumentsOperationCallable().futureCall(request);
   // Do something.
   ExportDocumentsResponse response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<ExportDocumentsRequest,ExportDocumentsResponse,ExportDocumentsMetadata>

getDatabase(DatabaseName name)

public final Database getDatabase(DatabaseName name)

Gets information about a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   DatabaseName name = DatabaseName.of("[PROJECT]", "[DATABASE]");
   Database response = firestoreAdminClient.getDatabase(name);
 }
 
Parameter
NameDescription
nameDatabaseName

Required. A name of the form projects/{project_id}/databases/{database_id}

Returns
TypeDescription
Database

getDatabase(GetDatabaseRequest request)

public final Database getDatabase(GetDatabaseRequest request)

Gets information about a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetDatabaseRequest request =
       GetDatabaseRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .build();
   Database response = firestoreAdminClient.getDatabase(request);
 }
 
Parameter
NameDescription
requestGetDatabaseRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Database

getDatabase(String name)

public final Database getDatabase(String name)

Gets information about a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = DatabaseName.of("[PROJECT]", "[DATABASE]").toString();
   Database response = firestoreAdminClient.getDatabase(name);
 }
 
Parameter
NameDescription
nameString

Required. A name of the form projects/{project_id}/databases/{database_id}

Returns
TypeDescription
Database

getDatabaseCallable()

public final UnaryCallable<GetDatabaseRequest,Database> getDatabaseCallable()

Gets information about a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetDatabaseRequest request =
       GetDatabaseRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .build();
   ApiFuture<Database> future = firestoreAdminClient.getDatabaseCallable().futureCall(request);
   // Do something.
   Database response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetDatabaseRequest,Database>

getField(FieldName name)

public final Field getField(FieldName name)

Gets the metadata and configuration for a Field.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   FieldName name = FieldName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[FIELD]");
   Field response = firestoreAdminClient.getField(name);
 }
 
Parameter
NameDescription
nameFieldName

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}

Returns
TypeDescription
Field

getField(GetFieldRequest request)

public final Field getField(GetFieldRequest request)

Gets the metadata and configuration for a Field.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetFieldRequest request =
       GetFieldRequest.newBuilder()
           .setName(
               FieldName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[FIELD]").toString())
           .build();
   Field response = firestoreAdminClient.getField(request);
 }
 
Parameter
NameDescription
requestGetFieldRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Field

getField(String name)

public final Field getField(String name)

Gets the metadata and configuration for a Field.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = FieldName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[FIELD]").toString();
   Field response = firestoreAdminClient.getField(name);
 }
 
Parameter
NameDescription
nameString

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}

Returns
TypeDescription
Field

getFieldCallable()

public final UnaryCallable<GetFieldRequest,Field> getFieldCallable()

Gets the metadata and configuration for a Field.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetFieldRequest request =
       GetFieldRequest.newBuilder()
           .setName(
               FieldName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[FIELD]").toString())
           .build();
   ApiFuture<Field> future = firestoreAdminClient.getFieldCallable().futureCall(request);
   // Do something.
   Field response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetFieldRequest,Field>

getIndex(GetIndexRequest request)

public final Index getIndex(GetIndexRequest request)

Gets a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetIndexRequest request =
       GetIndexRequest.newBuilder()
           .setName(
               IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString())
           .build();
   Index response = firestoreAdminClient.getIndex(request);
 }
 
Parameter
NameDescription
requestGetIndexRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Index

getIndex(IndexName name)

public final Index getIndex(IndexName name)

Gets a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   IndexName name = IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]");
   Index response = firestoreAdminClient.getIndex(name);
 }
 
Parameter
NameDescription
nameIndexName

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

Returns
TypeDescription
Index

getIndex(String name)

public final Index getIndex(String name)

Gets a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString();
   Index response = firestoreAdminClient.getIndex(name);
 }
 
Parameter
NameDescription
nameString

Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

Returns
TypeDescription
Index

getIndexCallable()

public final UnaryCallable<GetIndexRequest,Index> getIndexCallable()

Gets a composite index.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   GetIndexRequest request =
       GetIndexRequest.newBuilder()
           .setName(
               IndexName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]", "[INDEX]").toString())
           .build();
   ApiFuture<Index> future = firestoreAdminClient.getIndexCallable().futureCall(request);
   // Do something.
   Index response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetIndexRequest,Index>

getOperationsClient()

public final OperationsClient getOperationsClient()

Returns the OperationsClient that can be used to query the status of a long-running operation returned by another API method call.

Returns
TypeDescription
OperationsClient

getSettings()

public final FirestoreAdminSettings getSettings()
Returns
TypeDescription
FirestoreAdminSettings

getStub()

public FirestoreAdminStub getStub()
Returns
TypeDescription
FirestoreAdminStub

importDocumentsAsync(DatabaseName name)

public final OperationFuture<Empty,ImportDocumentsMetadata> importDocumentsAsync(DatabaseName name)

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   DatabaseName name = DatabaseName.of("[PROJECT]", "[DATABASE]");
   firestoreAdminClient.importDocumentsAsync(name).get();
 }
 
Parameter
NameDescription
nameDatabaseName

Required. Database to import into. Should be of the form: projects/{project_id}/databases/{database_id}.

Returns
TypeDescription
OperationFuture<Empty,ImportDocumentsMetadata>

importDocumentsAsync(ImportDocumentsRequest request)

public final OperationFuture<Empty,ImportDocumentsMetadata> importDocumentsAsync(ImportDocumentsRequest request)

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ImportDocumentsRequest request =
       ImportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setInputUriPrefix("inputUriPrefix-97481100")
           .build();
   firestoreAdminClient.importDocumentsAsync(request).get();
 }
 
Parameter
NameDescription
requestImportDocumentsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<Empty,ImportDocumentsMetadata>

importDocumentsAsync(String name)

public final OperationFuture<Empty,ImportDocumentsMetadata> importDocumentsAsync(String name)

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String name = DatabaseName.of("[PROJECT]", "[DATABASE]").toString();
   firestoreAdminClient.importDocumentsAsync(name).get();
 }
 
Parameter
NameDescription
nameString

Required. Database to import into. Should be of the form: projects/{project_id}/databases/{database_id}.

Returns
TypeDescription
OperationFuture<Empty,ImportDocumentsMetadata>

importDocumentsCallable()

public final UnaryCallable<ImportDocumentsRequest,Operation> importDocumentsCallable()

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ImportDocumentsRequest request =
       ImportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setInputUriPrefix("inputUriPrefix-97481100")
           .build();
   ApiFuture<Operation> future =
       firestoreAdminClient.importDocumentsCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
UnaryCallable<ImportDocumentsRequest,Operation>

importDocumentsOperationCallable()

public final OperationCallable<ImportDocumentsRequest,Empty,ImportDocumentsMetadata> importDocumentsOperationCallable()

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ImportDocumentsRequest request =
       ImportDocumentsRequest.newBuilder()
           .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
           .addAllCollectionIds(new ArrayList<String>())
           .setInputUriPrefix("inputUriPrefix-97481100")
           .build();
   OperationFuture<Empty, ImportDocumentsMetadata> future =
       firestoreAdminClient.importDocumentsOperationCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
OperationCallable<ImportDocumentsRequest,Empty,ImportDocumentsMetadata>

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listDatabases(ListDatabasesRequest request)

public final ListDatabasesResponse listDatabases(ListDatabasesRequest request)

List all the databases in the project.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListDatabasesRequest request =
       ListDatabasesRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .build();
   ListDatabasesResponse response = firestoreAdminClient.listDatabases(request);
 }
 
Parameter
NameDescription
requestListDatabasesRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
ListDatabasesResponse

listDatabases(ProjectName parent)

public final ListDatabasesResponse listDatabases(ProjectName parent)

List all the databases in the project.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ProjectName parent = ProjectName.of("[PROJECT]");
   ListDatabasesResponse response = firestoreAdminClient.listDatabases(parent);
 }
 
Parameter
NameDescription
parentProjectName

Required. A parent name of the form projects/{project_id}

Returns
TypeDescription
ListDatabasesResponse

listDatabases(String parent)

public final ListDatabasesResponse listDatabases(String parent)

List all the databases in the project.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String parent = ProjectName.of("[PROJECT]").toString();
   ListDatabasesResponse response = firestoreAdminClient.listDatabases(parent);
 }
 
Parameter
NameDescription
parentString

Required. A parent name of the form projects/{project_id}

Returns
TypeDescription
ListDatabasesResponse

listDatabasesCallable()

public final UnaryCallable<ListDatabasesRequest,ListDatabasesResponse> listDatabasesCallable()

List all the databases in the project.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListDatabasesRequest request =
       ListDatabasesRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .build();
   ApiFuture<ListDatabasesResponse> future =
       firestoreAdminClient.listDatabasesCallable().futureCall(request);
   // Do something.
   ListDatabasesResponse response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<ListDatabasesRequest,ListDatabasesResponse>

listFields(CollectionGroupName parent)

public final FirestoreAdminClient.ListFieldsPagedResponse listFields(CollectionGroupName parent)

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to indexConfig.usesAncestorConfig:false .

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CollectionGroupName parent =
       CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]");
   for (Field element : firestoreAdminClient.listFields(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentCollectionGroupName

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

Returns
TypeDescription
FirestoreAdminClient.ListFieldsPagedResponse

listFields(ListFieldsRequest request)

public final FirestoreAdminClient.ListFieldsPagedResponse listFields(ListFieldsRequest request)

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to indexConfig.usesAncestorConfig:false .

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListFieldsRequest request =
       ListFieldsRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   for (Field element : firestoreAdminClient.listFields(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListFieldsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
FirestoreAdminClient.ListFieldsPagedResponse

listFields(String parent)

public final FirestoreAdminClient.ListFieldsPagedResponse listFields(String parent)

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to indexConfig.usesAncestorConfig:false .

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String parent = CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString();
   for (Field element : firestoreAdminClient.listFields(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

Returns
TypeDescription
FirestoreAdminClient.ListFieldsPagedResponse

listFieldsCallable()

public final UnaryCallable<ListFieldsRequest,ListFieldsResponse> listFieldsCallable()

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to indexConfig.usesAncestorConfig:false .

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListFieldsRequest request =
       ListFieldsRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   while (true) {
     ListFieldsResponse response = firestoreAdminClient.listFieldsCallable().call(request);
     for (Field element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListFieldsRequest,ListFieldsResponse>

listFieldsPagedCallable()

public final UnaryCallable<ListFieldsRequest,FirestoreAdminClient.ListFieldsPagedResponse> listFieldsPagedCallable()

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to indexConfig.usesAncestorConfig:false .

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListFieldsRequest request =
       ListFieldsRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   ApiFuture<Field> future = firestoreAdminClient.listFieldsPagedCallable().futureCall(request);
   // Do something.
   for (Field element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListFieldsRequest,ListFieldsPagedResponse>

listIndexes(CollectionGroupName parent)

public final FirestoreAdminClient.ListIndexesPagedResponse listIndexes(CollectionGroupName parent)

Lists composite indexes.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   CollectionGroupName parent =
       CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]");
   for (Index element : firestoreAdminClient.listIndexes(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentCollectionGroupName

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

Returns
TypeDescription
FirestoreAdminClient.ListIndexesPagedResponse

listIndexes(ListIndexesRequest request)

public final FirestoreAdminClient.ListIndexesPagedResponse listIndexes(ListIndexesRequest request)

Lists composite indexes.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListIndexesRequest request =
       ListIndexesRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   for (Index element : firestoreAdminClient.listIndexes(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListIndexesRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
FirestoreAdminClient.ListIndexesPagedResponse

listIndexes(String parent)

public final FirestoreAdminClient.ListIndexesPagedResponse listIndexes(String parent)

Lists composite indexes.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   String parent = CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString();
   for (Index element : firestoreAdminClient.listIndexes(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

Returns
TypeDescription
FirestoreAdminClient.ListIndexesPagedResponse

listIndexesCallable()

public final UnaryCallable<ListIndexesRequest,ListIndexesResponse> listIndexesCallable()

Lists composite indexes.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListIndexesRequest request =
       ListIndexesRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   while (true) {
     ListIndexesResponse response = firestoreAdminClient.listIndexesCallable().call(request);
     for (Index element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListIndexesRequest,ListIndexesResponse>

listIndexesPagedCallable()

public final UnaryCallable<ListIndexesRequest,FirestoreAdminClient.ListIndexesPagedResponse> listIndexesPagedCallable()

Lists composite indexes.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   ListIndexesRequest request =
       ListIndexesRequest.newBuilder()
           .setParent(
               CollectionGroupName.of("[PROJECT]", "[DATABASE]", "[COLLECTION]").toString())
           .setFilter("filter-1274492040")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   ApiFuture<Index> future = firestoreAdminClient.listIndexesPagedCallable().futureCall(request);
   // Do something.
   for (Index element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListIndexesRequest,ListIndexesPagedResponse>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

updateDatabaseAsync(Database database, FieldMask updateMask)

public final OperationFuture<Database,UpdateDatabaseMetadata> updateDatabaseAsync(Database database, FieldMask updateMask)

Updates a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   Database database = Database.newBuilder().build();
   FieldMask updateMask = FieldMask.newBuilder().build();
   Database response = firestoreAdminClient.updateDatabaseAsync(database, updateMask).get();
 }
 
Parameters
NameDescription
databaseDatabase

Required. The database to update.

updateMaskFieldMask

The list of fields to be updated.

Returns
TypeDescription
OperationFuture<Database,UpdateDatabaseMetadata>

updateDatabaseAsync(UpdateDatabaseRequest request)

public final OperationFuture<Database,UpdateDatabaseMetadata> updateDatabaseAsync(UpdateDatabaseRequest request)

Updates a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateDatabaseRequest request =
       UpdateDatabaseRequest.newBuilder()
           .setDatabase(Database.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Database response = firestoreAdminClient.updateDatabaseAsync(request).get();
 }
 
Parameter
NameDescription
requestUpdateDatabaseRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<Database,UpdateDatabaseMetadata>

updateDatabaseCallable()

public final UnaryCallable<UpdateDatabaseRequest,Operation> updateDatabaseCallable()

Updates a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateDatabaseRequest request =
       UpdateDatabaseRequest.newBuilder()
           .setDatabase(Database.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Operation> future =
       firestoreAdminClient.updateDatabaseCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<UpdateDatabaseRequest,Operation>

updateDatabaseOperationCallable()

public final OperationCallable<UpdateDatabaseRequest,Database,UpdateDatabaseMetadata> updateDatabaseOperationCallable()

Updates a database.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateDatabaseRequest request =
       UpdateDatabaseRequest.newBuilder()
           .setDatabase(Database.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   OperationFuture<Database, UpdateDatabaseMetadata> future =
       firestoreAdminClient.updateDatabaseOperationCallable().futureCall(request);
   // Do something.
   Database response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<UpdateDatabaseRequest,Database,UpdateDatabaseMetadata>

updateFieldAsync(Field field)

public final OperationFuture<Field,FieldOperationMetadata> updateFieldAsync(Field field)

Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin.UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: { paths: "index_config" }.

This call returns a google.longrunning.Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata.

To configure the default field settings for the database, use the special Field with resource name: projects/{project_id}/databases/{database_id}/collectionGroups/default/fields/*.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   Field field = Field.newBuilder().build();
   Field response = firestoreAdminClient.updateFieldAsync(field).get();
 }
 
Parameter
NameDescription
fieldField

Required. The field to be updated.

Returns
TypeDescription
OperationFuture<Field,FieldOperationMetadata>

updateFieldAsync(UpdateFieldRequest request)

public final OperationFuture<Field,FieldOperationMetadata> updateFieldAsync(UpdateFieldRequest request)

Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin.UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: { paths: "index_config" }.

This call returns a google.longrunning.Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata.

To configure the default field settings for the database, use the special Field with resource name: projects/{project_id}/databases/{database_id}/collectionGroups/default/fields/*.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateFieldRequest request =
       UpdateFieldRequest.newBuilder()
           .setField(Field.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Field response = firestoreAdminClient.updateFieldAsync(request).get();
 }
 
Parameter
NameDescription
requestUpdateFieldRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<Field,FieldOperationMetadata>

updateFieldCallable()

public final UnaryCallable<UpdateFieldRequest,Operation> updateFieldCallable()

Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin.UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: { paths: "index_config" }.

This call returns a google.longrunning.Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata.

To configure the default field settings for the database, use the special Field with resource name: projects/{project_id}/databases/{database_id}/collectionGroups/default/fields/*.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateFieldRequest request =
       UpdateFieldRequest.newBuilder()
           .setField(Field.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Operation> future = firestoreAdminClient.updateFieldCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<UpdateFieldRequest,Operation>

updateFieldOperationCallable()

public final OperationCallable<UpdateFieldRequest,Field,FieldOperationMetadata> updateFieldOperationCallable()

Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin.UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: { paths: "index_config" }.

This call returns a google.longrunning.Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata.

To configure the default field settings for the database, use the special Field with resource name: projects/{project_id}/databases/{database_id}/collectionGroups/default/fields/*.

Sample code:


 try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
   UpdateFieldRequest request =
       UpdateFieldRequest.newBuilder()
           .setField(Field.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   OperationFuture<Field, FieldOperationMetadata> future =
       firestoreAdminClient.updateFieldOperationCallable().futureCall(request);
   // Do something.
   Field response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<UpdateFieldRequest,Field,FieldOperationMetadata>