pub struct FirestoreClient<T> { /* private fields */ }
Expand 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.

Implementations§

source§

impl<T> FirestoreClient<T>
where T: GrpcService<BoxBody>, T::Error: Into<StdError>, T::ResponseBody: Body<Data = Bytes> + Send + 'static, <T::ResponseBody as Body>::Error: Into<StdError> + Send,

source

pub fn new(inner: T) -> Self

source

pub fn with_origin(inner: T, origin: Uri) -> Self

source

pub fn with_interceptor<F>( inner: T, interceptor: F, ) -> FirestoreClient<InterceptedService<T, F>>
where F: Interceptor, T::ResponseBody: Default, T: Service<Request<BoxBody>, Response = Response<<T as GrpcService<BoxBody>>::ResponseBody>>, <T as Service<Request<BoxBody>>>::Error: Into<StdError> + Send + Sync,

source

pub fn send_compressed(self, encoding: CompressionEncoding) -> Self

Compress requests with the given encoding.

This requires the server to support it otherwise it might respond with an error.

source

pub fn accept_compressed(self, encoding: CompressionEncoding) -> Self

Enable decompressing responses.

source

pub fn max_decoding_message_size(self, limit: usize) -> Self

Limits the maximum size of a decoded message.

Default: 4MB

source

pub fn max_encoding_message_size(self, limit: usize) -> Self

Limits the maximum size of an encoded message.

Default: usize::MAX

source

pub async fn get_document( &mut self, request: impl IntoRequest<GetDocumentRequest>, ) -> Result<Response<Document>, Status>

Gets a single document.

source

pub async fn list_documents( &mut self, request: impl IntoRequest<ListDocumentsRequest>, ) -> Result<Response<ListDocumentsResponse>, Status>

Lists documents.

source

pub async fn update_document( &mut self, request: impl IntoRequest<UpdateDocumentRequest>, ) -> Result<Response<Document>, Status>

Updates or inserts a document.

source

pub async fn delete_document( &mut self, request: impl IntoRequest<DeleteDocumentRequest>, ) -> Result<Response<()>, Status>

Deletes a document.

source

pub async fn batch_get_documents( &mut self, request: impl IntoRequest<BatchGetDocumentsRequest>, ) -> Result<Response<Streaming<BatchGetDocumentsResponse>>, Status>

Gets multiple documents.

Documents returned by this method are not guaranteed to be returned in the same order that they were requested.

source

pub async fn begin_transaction( &mut self, request: impl IntoRequest<BeginTransactionRequest>, ) -> Result<Response<BeginTransactionResponse>, Status>

Starts a new transaction.

source

pub async fn commit( &mut self, request: impl IntoRequest<CommitRequest>, ) -> Result<Response<CommitResponse>, Status>

Commits a transaction, while optionally updating documents.

source

pub async fn rollback( &mut self, request: impl IntoRequest<RollbackRequest>, ) -> Result<Response<()>, Status>

Rolls back a transaction.

source

pub async fn run_query( &mut self, request: impl IntoRequest<RunQueryRequest>, ) -> Result<Response<Streaming<RunQueryResponse>>, Status>

Runs a query.

source

pub async fn run_aggregation_query( &mut self, request: impl IntoRequest<RunAggregationQueryRequest>, ) -> Result<Response<Streaming<RunAggregationQueryResponse>>, Status>

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 );
source

pub async fn partition_query( &mut self, request: impl IntoRequest<PartitionQueryRequest>, ) -> Result<Response<PartitionQueryResponse>, Status>

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.

source

pub async fn write( &mut self, request: impl IntoStreamingRequest<Message = WriteRequest>, ) -> Result<Response<Streaming<WriteResponse>>, Status>

Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).

source

pub async fn listen( &mut self, request: impl IntoStreamingRequest<Message = ListenRequest>, ) -> Result<Response<Streaming<ListenResponse>>, Status>

Listens to changes. This method is only available via gRPC or WebChannel (not REST).

source

pub async fn list_collection_ids( &mut self, request: impl IntoRequest<ListCollectionIdsRequest>, ) -> Result<Response<ListCollectionIdsResponse>, Status>

Lists all the collection IDs underneath a document.

source

pub async fn batch_write( &mut self, request: impl IntoRequest<BatchWriteRequest>, ) -> Result<Response<BatchWriteResponse>, Status>

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.

source

pub async fn create_document( &mut self, request: impl IntoRequest<CreateDocumentRequest>, ) -> Result<Response<Document>, Status>

Creates a new document.

Trait Implementations§

source§

impl<T: Clone> Clone for FirestoreClient<T>

source§

fn clone(&self) -> FirestoreClient<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for FirestoreClient<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for FirestoreClient<T>

§

impl<T> RefUnwindSafe for FirestoreClient<T>
where T: RefUnwindSafe,

§

impl<T> Send for FirestoreClient<T>
where T: Send,

§

impl<T> Sync for FirestoreClient<T>
where T: Sync,

§

impl<T> Unpin for FirestoreClient<T>
where T: Unpin,

§

impl<T> UnwindSafe for FirestoreClient<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more