:py:mod:`airflow.providers.google.firebase.hooks.firestore`
===========================================================

.. py:module:: airflow.providers.google.firebase.hooks.firestore

.. autoapi-nested-parse::

   Hook for Google Cloud Firestore service



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.firebase.hooks.firestore.CloudFirestoreHook




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.firebase.hooks.firestore.TIME_TO_SLEEP_IN_SECONDS


.. py:data:: TIME_TO_SLEEP_IN_SECONDS
   :annotation: = 5

   

.. py:class:: CloudFirestoreHook(api_version = 'v1', gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None)

   Bases: :py:obj:`airflow.providers.google.common.hooks.base_google.GoogleBaseHook`

   Hook for the Google Firestore APIs.

   All the methods in the hook where project_id is used must be called with
   keyword arguments rather than positional.

   :param api_version: API version used (for example v1 or v1beta1).
   :param gcp_conn_id: The connection ID to use when fetching connection info.
   :param delegate_to: The account to impersonate using domain-wide delegation of authority,
       if any. For this to work, the service account making the request must have
       domain-wide delegation enabled.
   :param impersonation_chain: Optional service account to impersonate using short-term
       credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account.

   .. py:method:: get_conn()

      Retrieves the connection to Cloud Firestore.

      :return: Google Cloud Firestore services object.


   .. py:method:: export_documents(body, database_id = '(default)', project_id = None)

      Starts a export with the specified configuration.

      :param database_id: The Database ID.
      :param body: The request body.
          See:
          https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases/exportDocuments
      :param project_id: Optional, Google Cloud Project project_id where the database belongs.
          If set to None or missing, the default project_id from the Google Cloud connection is used.



