Transactions#
Helpers for applying Google Cloud Firestore changes in a transaction.
-
google.cloud.firestore_v1.transaction.
MAX_ATTEMPTS
= 5# Default number of transaction attempts (with retries).
- Type
-
class
google.cloud.firestore_v1.transaction.
Transaction
(client, max_attempts=5, read_only=False)[source]# Bases:
google.cloud.firestore_v1.batch.WriteBatch
Accumulate read-and-write operations to be sent in a transaction.
- Parameters
client (
Client
) – The client that created this transaction.max_attempts (Optional[int]) – The maximum number of attempts for the transaction (i.e. allowing retries). Defaults to
MAX_ATTEMPTS
.read_only (Optional[bool]) – Flag indicating if the transaction should be read-only or should allow writes. Defaults to
False
.
-
commit
()# Commit the changes accumulated in this batch.
- Returns
The write results corresponding to the changes committed, returned in the same order as the changes were applied to this batch. A write result contains an
update_time
field.- Return type
List[
google.cloud.proto.firestore.v1.write_pb2.WriteResult
, …]
-
create
(reference, document_data)# Add a “change” to this batch to create a document.
If the document given by
reference
already exists, then this batch will fail whencommit()
-ed.- Parameters
reference (
DocumentReference
) – A document reference to be created in this batch.document_data (dict) – Property names and values to use for creating a document.
-
delete
(reference, option=None)# Add a “change” to delete a document.
See
google.cloud.firestore_v1.document.DocumentReference.delete()
for more information on howoption
determines how the change is applied.- Parameters
reference (
DocumentReference
) – A document reference that will be deleted in this batch.option (Optional[
WriteOption
]) – A write option to make assertions / preconditions on the server state of the document before applying changes.
-
get
(ref_or_query)[source]# Retrieve a document or a query result from the database. :param ref_or_query The document references or query object to return.:
- Yields
.DocumentSnapshot – The next document snapshot that fulfills the query, or
None
if the document does not exist.
-
get_all
(references)[source]# Retrieves multiple documents from Firestore.
- Parameters
references (List[DocumentReference, ..]) – Iterable of document references to be retrieved.
- Yields
.DocumentSnapshot – The next document snapshot that fulfills the query, or
None
if the document does not exist.
-
property
id
# Get the current transaction ID.
-
property
in_progress
# Determine if this transaction has already begun.
- Returns
Indicates if the transaction has started.
- Return type
-
set
(reference, document_data, merge=False)# Add a “change” to replace a document.
See
google.cloud.firestore_v1.document.DocumentReference.set()
for more information on howoption
determines how the change is applied.- Parameters
reference (
DocumentReference
) – A document reference that will have values set in this batch.document_data (dict) – Property names and values to use for replacing a document.
merge (Optional[bool] or Optional[List<apispec>]) – If True, apply merging instead of overwriting the state of the document.
-
update
(reference, field_updates, option=None)# Add a “change” to update a document.
See
google.cloud.firestore_v1.document.DocumentReference.update()
for more information onfield_updates
andoption
.- Parameters
reference (
DocumentReference
) – A document reference that will be updated in this batch.field_updates (dict) – Field names or paths to update and values to update with.
option (Optional[
WriteOption
]) – A write option to make assertions / preconditions on the server state of the document before applying changes.
-
google.cloud.firestore_v1.transaction.
transactional
(to_wrap)[source]# Decorate a callable so that it runs in a transaction.
- Parameters
to_wrap – (Callable[[
Transaction
, …], Any]): A callable that should be run (and retried) in a transaction.- Returns
the wrapped callable.
- Return type
Callable[[
Transaction
, …], Any]