@Generated(value="by gapic-generator") public class FirestoreClient extends Object implements BackgroundResource
This service exposes several types of comparable timestamps:
* `create_time` - The time at which a document was created. Changes only when a document is deleted, then re-created. Increases in a strict monotonic fashion. * `update_time` - The time at which a document was last updated. Changes every time a document is modified. Does not change when a write results in no modifications. Increases in a strict monotonic fashion. * `read_time` - The time at which a particular state was observed. Used to denote a consistent snapshot of the database or the time at which a Document was observed to not exist. * `commit_time` - The time at which the writes in a transaction were committed. Any read with an equal or greater `read_time` is guaranteed to see the effects of the transaction.
This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
Document document = Document.newBuilder().build();
DocumentMask updateMask = DocumentMask.newBuilder().build();
Document response = firestoreClient.updateDocument(document, updateMask);
}
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:
See the individual methods for example code.
Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.
This class can be customized by passing in a custom instance of FirestoreSettings to create(). For example:
To customize credentials:
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
.build();
FirestoreClient firestoreClient =
FirestoreClient.create(firestoreSettings);
To customize the endpoint:
FirestoreSettings firestoreSettings =
FirestoreSettings.newBuilder().setEndpoint(myEndpoint).build();
FirestoreClient firestoreClient =
FirestoreClient.create(firestoreSettings);
Modifier and Type | Class and Description |
---|---|
static class |
FirestoreClient.ListCollectionIdsFixedSizeCollection |
static class |
FirestoreClient.ListCollectionIdsPage |
static class |
FirestoreClient.ListCollectionIdsPagedResponse |
static class |
FirestoreClient.ListDocumentsFixedSizeCollection |
static class |
FirestoreClient.ListDocumentsPage |
static class |
FirestoreClient.ListDocumentsPagedResponse |
Modifier | Constructor and Description |
---|---|
protected |
FirestoreClient(FirestoreSettings settings)
Constructs an instance of FirestoreClient, using the given settings.
|
protected |
FirestoreClient(FirestoreStub stub) |
Modifier and Type | Method and Description |
---|---|
boolean |
awaitTermination(long duration,
TimeUnit unit) |
ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> |
batchGetDocumentsCallable()
Gets multiple documents.
|
com.google.firestore.v1.BeginTransactionResponse |
beginTransaction(com.google.firestore.v1.BeginTransactionRequest request)
Starts a new transaction.
|
com.google.firestore.v1.BeginTransactionResponse |
beginTransaction(String database)
Starts a new transaction.
|
UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> |
beginTransactionCallable()
Starts a new transaction.
|
void |
close() |
com.google.firestore.v1.CommitResponse |
commit(com.google.firestore.v1.CommitRequest request)
Commits a transaction, while optionally updating documents.
|
com.google.firestore.v1.CommitResponse |
commit(String database,
List<com.google.firestore.v1.Write> writes)
Commits a transaction, while optionally updating documents.
|
UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> |
commitCallable()
Commits a transaction, while optionally updating documents.
|
static FirestoreClient |
create()
Constructs an instance of FirestoreClient with default settings.
|
static FirestoreClient |
create(FirestoreSettings settings)
Constructs an instance of FirestoreClient, using the given settings.
|
static FirestoreClient |
create(FirestoreStub stub)
Constructs an instance of FirestoreClient, using the given stub for making calls.
|
com.google.firestore.v1.Document |
createDocument(com.google.firestore.v1.CreateDocumentRequest request)
Creates a new document.
|
UnaryCallable<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> |
createDocumentCallable()
Creates a new document.
|
void |
deleteDocument(com.google.firestore.v1.AnyPathName name)
Deletes a document.
|
void |
deleteDocument(com.google.firestore.v1.DeleteDocumentRequest request)
Deletes a document.
|
void |
deleteDocument(String name)
Deletes a document.
|
UnaryCallable<com.google.firestore.v1.DeleteDocumentRequest,Empty> |
deleteDocumentCallable()
Deletes a document.
|
com.google.firestore.v1.Document |
getDocument(com.google.firestore.v1.GetDocumentRequest request)
Gets a single document.
|
UnaryCallable<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> |
getDocumentCallable()
Gets a single document.
|
FirestoreSettings |
getSettings() |
FirestoreStub |
getStub() |
boolean |
isShutdown() |
boolean |
isTerminated() |
FirestoreClient.ListCollectionIdsPagedResponse |
listCollectionIds(com.google.firestore.v1.ListCollectionIdsRequest request)
Lists all the collection IDs underneath a document.
|
FirestoreClient.ListCollectionIdsPagedResponse |
listCollectionIds(String parent)
Lists all the collection IDs underneath a document.
|
UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse> |
listCollectionIdsCallable()
Lists all the collection IDs underneath a document.
|
UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,FirestoreClient.ListCollectionIdsPagedResponse> |
listCollectionIdsPagedCallable()
Lists all the collection IDs underneath a document.
|
FirestoreClient.ListDocumentsPagedResponse |
listDocuments(com.google.firestore.v1.ListDocumentsRequest request)
Lists documents.
|
UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse> |
listDocumentsCallable()
Lists documents.
|
UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,FirestoreClient.ListDocumentsPagedResponse> |
listDocumentsPagedCallable()
Lists documents.
|
BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> |
listenCallable()
Listens to changes.
|
void |
rollback(com.google.firestore.v1.RollbackRequest request)
Rolls back a transaction.
|
void |
rollback(String database,
ByteString transaction)
Rolls back a transaction.
|
UnaryCallable<com.google.firestore.v1.RollbackRequest,Empty> |
rollbackCallable()
Rolls back a transaction.
|
ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> |
runQueryCallable()
Runs a query.
|
void |
shutdown() |
void |
shutdownNow() |
com.google.firestore.v1.Document |
updateDocument(com.google.firestore.v1.Document document,
com.google.firestore.v1.DocumentMask updateMask)
Updates or inserts a document.
|
com.google.firestore.v1.Document |
updateDocument(com.google.firestore.v1.UpdateDocumentRequest request)
Updates or inserts a document.
|
UnaryCallable<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> |
updateDocumentCallable()
Updates or inserts a document.
|
BidiStreamingCallable<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> |
writeCallable()
Streams batches of document updates and deletes, in order.
|
protected FirestoreClient(FirestoreSettings settings) throws IOException
IOException
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") protected FirestoreClient(FirestoreStub stub)
public static final FirestoreClient create() throws IOException
IOException
public static final FirestoreClient create(FirestoreSettings settings) throws IOException
IOException
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") public static final FirestoreClient create(FirestoreStub stub)
public final FirestoreSettings getSettings()
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") public FirestoreStub getStub()
public final com.google.firestore.v1.Document getDocument(com.google.firestore.v1.GetDocumentRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
GetDocumentRequest request = GetDocumentRequest.newBuilder()
.setName(name.toString())
.build();
Document response = firestoreClient.getDocument(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.GetDocumentRequest,com.google.firestore.v1.Document> getDocumentCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
GetDocumentRequest request = GetDocumentRequest.newBuilder()
.setName(name.toString())
.build();
ApiFuture<Document> future = firestoreClient.getDocumentCallable().futureCall(request);
// Do something
Document response = future.get();
}
public final FirestoreClient.ListDocumentsPagedResponse listDocuments(com.google.firestore.v1.ListDocumentsRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
String collectionId = "";
ListDocumentsRequest request = ListDocumentsRequest.newBuilder()
.setParent(formattedParent)
.setCollectionId(collectionId)
.build();
for (Document element : firestoreClient.listDocuments(request).iterateAll()) {
// doThingsWith(element);
}
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,FirestoreClient.ListDocumentsPagedResponse> listDocumentsPagedCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
String collectionId = "";
ListDocumentsRequest request = ListDocumentsRequest.newBuilder()
.setParent(formattedParent)
.setCollectionId(collectionId)
.build();
ApiFuture<ListDocumentsPagedResponse> future = firestoreClient.listDocumentsPagedCallable().futureCall(request);
// Do something
for (Document element : future.get().iterateAll()) {
// doThingsWith(element);
}
}
public final UnaryCallable<com.google.firestore.v1.ListDocumentsRequest,com.google.firestore.v1.ListDocumentsResponse> listDocumentsCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
String collectionId = "";
ListDocumentsRequest request = ListDocumentsRequest.newBuilder()
.setParent(formattedParent)
.setCollectionId(collectionId)
.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;
}
}
}
public final com.google.firestore.v1.Document createDocument(com.google.firestore.v1.CreateDocumentRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
String collectionId = "";
String documentId = "";
Document document = Document.newBuilder().build();
CreateDocumentRequest request = CreateDocumentRequest.newBuilder()
.setParent(formattedParent)
.setCollectionId(collectionId)
.setDocumentId(documentId)
.setDocument(document)
.build();
Document response = firestoreClient.createDocument(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.CreateDocumentRequest,com.google.firestore.v1.Document> createDocumentCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
String collectionId = "";
String documentId = "";
Document document = Document.newBuilder().build();
CreateDocumentRequest request = CreateDocumentRequest.newBuilder()
.setParent(formattedParent)
.setCollectionId(collectionId)
.setDocumentId(documentId)
.setDocument(document)
.build();
ApiFuture<Document> future = firestoreClient.createDocumentCallable().futureCall(request);
// Do something
Document response = future.get();
}
public final com.google.firestore.v1.Document updateDocument(com.google.firestore.v1.Document document, com.google.firestore.v1.DocumentMask updateMask)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
Document document = Document.newBuilder().build();
DocumentMask updateMask = DocumentMask.newBuilder().build();
Document response = firestoreClient.updateDocument(document, updateMask);
}
document
- 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.
ApiException
- if the remote call failspublic final com.google.firestore.v1.Document updateDocument(com.google.firestore.v1.UpdateDocumentRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
Document document = Document.newBuilder().build();
DocumentMask updateMask = DocumentMask.newBuilder().build();
UpdateDocumentRequest request = UpdateDocumentRequest.newBuilder()
.setDocument(document)
.setUpdateMask(updateMask)
.build();
Document response = firestoreClient.updateDocument(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.UpdateDocumentRequest,com.google.firestore.v1.Document> updateDocumentCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
Document document = Document.newBuilder().build();
DocumentMask updateMask = DocumentMask.newBuilder().build();
UpdateDocumentRequest request = UpdateDocumentRequest.newBuilder()
.setDocument(document)
.setUpdateMask(updateMask)
.build();
ApiFuture<Document> future = firestoreClient.updateDocumentCallable().futureCall(request);
// Do something
Document response = future.get();
}
public final void deleteDocument(com.google.firestore.v1.AnyPathName name)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
firestoreClient.deleteDocument(name);
}
name
- The resource name of the Document to delete. In the format:
`projects/{project_id}/databases/{database_id}/documents/{document_path}`.ApiException
- if the remote call failspublic final void deleteDocument(String name)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
firestoreClient.deleteDocument(name.toString());
}
name
- The resource name of the Document to delete. In the format:
`projects/{project_id}/databases/{database_id}/documents/{document_path}`.ApiException
- if the remote call failspublic final void deleteDocument(com.google.firestore.v1.DeleteDocumentRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
DeleteDocumentRequest request = DeleteDocumentRequest.newBuilder()
.setName(name.toString())
.build();
firestoreClient.deleteDocument(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.DeleteDocumentRequest,Empty> deleteDocumentCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
DeleteDocumentRequest request = DeleteDocumentRequest.newBuilder()
.setName(name.toString())
.build();
ApiFuture<Void> future = firestoreClient.deleteDocumentCallable().futureCall(request);
// Do something
future.get();
}
public final ServerStreamingCallable<com.google.firestore.v1.BatchGetDocumentsRequest,com.google.firestore.v1.BatchGetDocumentsResponse> batchGetDocumentsCallable()
Documents returned by this method are not guaranteed to be returned in the same order that they were requested.
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
List<String> documents = new ArrayList<>();
BatchGetDocumentsRequest request = BatchGetDocumentsRequest.newBuilder()
.setDatabase(formattedDatabase)
.addAllDocuments(documents)
.build();
ServerStream<BatchGetDocumentsResponse> stream = firestoreClient.batchGetDocumentsCallable().call(request);
for (BatchGetDocumentsResponse response : stream) {
// Do something when receive a response
}
}
public final com.google.firestore.v1.BeginTransactionResponse beginTransaction(String database)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
BeginTransactionResponse response = firestoreClient.beginTransaction(formattedDatabase);
}
database
- The database name. In the format:
`projects/{project_id}/databases/{database_id}`.ApiException
- if the remote call failspublic final com.google.firestore.v1.BeginTransactionResponse beginTransaction(com.google.firestore.v1.BeginTransactionRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
BeginTransactionRequest request = BeginTransactionRequest.newBuilder()
.setDatabase(formattedDatabase)
.build();
BeginTransactionResponse response = firestoreClient.beginTransaction(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.BeginTransactionRequest,com.google.firestore.v1.BeginTransactionResponse> beginTransactionCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
BeginTransactionRequest request = BeginTransactionRequest.newBuilder()
.setDatabase(formattedDatabase)
.build();
ApiFuture<BeginTransactionResponse> future = firestoreClient.beginTransactionCallable().futureCall(request);
// Do something
BeginTransactionResponse response = future.get();
}
public final com.google.firestore.v1.CommitResponse commit(String database, List<com.google.firestore.v1.Write> writes)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
List<Write> writes = new ArrayList<>();
CommitResponse response = firestoreClient.commit(formattedDatabase, writes);
}
database
- The database name. In the format:
`projects/{project_id}/databases/{database_id}`.writes
- The writes to apply.
Always executed atomically and in order.
ApiException
- if the remote call failspublic final com.google.firestore.v1.CommitResponse commit(com.google.firestore.v1.CommitRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
List<Write> writes = new ArrayList<>();
CommitRequest request = CommitRequest.newBuilder()
.setDatabase(formattedDatabase)
.addAllWrites(writes)
.build();
CommitResponse response = firestoreClient.commit(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.CommitRequest,com.google.firestore.v1.CommitResponse> commitCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
List<Write> writes = new ArrayList<>();
CommitRequest request = CommitRequest.newBuilder()
.setDatabase(formattedDatabase)
.addAllWrites(writes)
.build();
ApiFuture<CommitResponse> future = firestoreClient.commitCallable().futureCall(request);
// Do something
CommitResponse response = future.get();
}
public final void rollback(String database, ByteString transaction)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
ByteString transaction = ByteString.copyFromUtf8("");
firestoreClient.rollback(formattedDatabase, transaction);
}
database
- The database name. In the format:
`projects/{project_id}/databases/{database_id}`.transaction
- The transaction to roll back.ApiException
- if the remote call failspublic final void rollback(com.google.firestore.v1.RollbackRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
ByteString transaction = ByteString.copyFromUtf8("");
RollbackRequest request = RollbackRequest.newBuilder()
.setDatabase(formattedDatabase)
.setTransaction(transaction)
.build();
firestoreClient.rollback(request);
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.RollbackRequest,Empty> rollbackCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
ByteString transaction = ByteString.copyFromUtf8("");
RollbackRequest request = RollbackRequest.newBuilder()
.setDatabase(formattedDatabase)
.setTransaction(transaction)
.build();
ApiFuture<Void> future = firestoreClient.rollbackCallable().futureCall(request);
// Do something
future.get();
}
public final ServerStreamingCallable<com.google.firestore.v1.RunQueryRequest,com.google.firestore.v1.RunQueryResponse> runQueryCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
RunQueryRequest request = RunQueryRequest.newBuilder()
.setParent(formattedParent)
.build();
ServerStream<RunQueryResponse> stream = firestoreClient.runQueryCallable().call(request);
for (RunQueryResponse response : stream) {
// Do something when receive a response
}
}
public final BidiStreamingCallable<com.google.firestore.v1.WriteRequest,com.google.firestore.v1.WriteResponse> writeCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BidiStream<WriteRequest, WriteResponse> bidiStream =
firestoreClient.writeCallable().call();
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
WriteRequest request = WriteRequest.newBuilder()
.setDatabase(formattedDatabase)
.build();
bidiStream.send(request);
for (WriteResponse response : bidiStream) {
// Do something when receive a response
}
}
public final BidiStreamingCallable<com.google.firestore.v1.ListenRequest,com.google.firestore.v1.ListenResponse> listenCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
BidiStream<ListenRequest, ListenResponse> bidiStream =
firestoreClient.listenCallable().call();
String formattedDatabase = DatabaseRootName.format("[PROJECT]", "[DATABASE]");
ListenRequest request = ListenRequest.newBuilder()
.setDatabase(formattedDatabase)
.build();
bidiStream.send(request);
for (ListenResponse response : bidiStream) {
// Do something when receive a response
}
}
public final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(String parent)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
for (String element : firestoreClient.listCollectionIds(formattedParent).iterateAll()) {
// doThingsWith(element);
}
}
parent
- 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`ApiException
- if the remote call failspublic final FirestoreClient.ListCollectionIdsPagedResponse listCollectionIds(com.google.firestore.v1.ListCollectionIdsRequest request)
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
ListCollectionIdsRequest request = ListCollectionIdsRequest.newBuilder()
.setParent(formattedParent)
.build();
for (String element : firestoreClient.listCollectionIds(request).iterateAll()) {
// doThingsWith(element);
}
}
request
- The request object containing all of the parameters for the API call.ApiException
- if the remote call failspublic final UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,FirestoreClient.ListCollectionIdsPagedResponse> listCollectionIdsPagedCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
ListCollectionIdsRequest request = ListCollectionIdsRequest.newBuilder()
.setParent(formattedParent)
.build();
ApiFuture<ListCollectionIdsPagedResponse> future = firestoreClient.listCollectionIdsPagedCallable().futureCall(request);
// Do something
for (String element : future.get().iterateAll()) {
// doThingsWith(element);
}
}
public final UnaryCallable<com.google.firestore.v1.ListCollectionIdsRequest,com.google.firestore.v1.ListCollectionIdsResponse> listCollectionIdsCallable()
Sample code:
try (FirestoreClient firestoreClient = FirestoreClient.create()) {
String formattedParent = AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
ListCollectionIdsRequest request = ListCollectionIdsRequest.newBuilder()
.setParent(formattedParent)
.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;
}
}
}
public final void close()
close
in interface AutoCloseable
public void shutdown()
shutdown
in interface BackgroundResource
public boolean isShutdown()
isShutdown
in interface BackgroundResource
public boolean isTerminated()
isTerminated
in interface BackgroundResource
public void shutdownNow()
shutdownNow
in interface BackgroundResource
public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException
awaitTermination
in interface BackgroundResource
InterruptedException
Copyright © 2019 Google LLC. All rights reserved.