text: A Firestore REST api utility package
  Project description
  Python Firestore REST Package
  A simple package to manage requests to and from the Google Cloud Firestore REST api. This package is designed to be used with Python 2.6. If you are using a newer version of python, please refer to for the official python SDK.
  Dependencies
  Dependencies:
  - jwt
  - requests
  Documentation
  Authentication
  Authentication is managed through the service account keys produced in the Firestore console. See for more information on how to generate and store your private keys.
  To begin, you will need to pass your service account keys to credentials
  from firestore_rest import credentials, firestore credentials.set_credentials("path/to/serviceAccount.json") credentials.initialize_app()
  Client
  After authenticating, pass the credentials to the Firestore Client. The client manages all requests to and from the Firestore database
  from firestore_rest import credentials, firestore credentials.set_credentials("path/to/serviceAccount.json") credentials.initialize_app() db = firestore.client(credentials)
  Collection
  This class represents Firestore Collections
  To retrieve a reference to a new collection, call the collection method of the client.
  col_ref = db.collection('collectionName')
  A collection can also be spawned from an instance of a Document (see below)
  col_ref = doc_ref.collection('collectionName')
  Properties
  - Path: a collection's path can be retrieve via the getPath() method
  col_ref.getPath() # returns the fully-qualified pathname to the collection e.g. 'col/doc/subCol'
  Document
  This class represents Firestore Documents
  To retrieve a reference to a new document, call the document method of the client.
  doc_ref = db.document('collectionName/documentName')
  Similar to a collection, a document can also be spawned from an instance of a Collection
  col_ref = col_ref.document('documentName')
  Properties
  - Path: a document's path can be retrieve via the getPath() method
  doc_ref.getPath() # returns the fully-qualified pathname to the document e.g. 'col/doc/subCol/subDoc'
  Get
  Retrieve a snapshot of the current document.
  get()
  doc_ref.get()
  Set
  Creates a new document with the specified fields. Note: if a document already exists with the same pathName, the contents of that document will be replace with the contents of the set request
  set(payload: dict)
  doc_ref.set({ 'name' : 'Mario', 'Age' : 24 })
  Update
  Updates the document with the specified fields. Note: if a document already exists with the same pathName, the contents of that document will persist and the contents of the update request will be be appended to the document.
  update(payload: dict)
  doc_ref.update({ 'Friends' : ['Peach', 'Toad'] })
  Deletes the current document. This does nothing if the document does not already exist.
  delete()
  doc_ref.delete()
  Batch
  This is a helper to make batch requests to the Firestore database. Batch requests allow you to update multiple documents at once. Up to 200 records can be altered from each type of request (set, update, delete). Note: although the batch seemingly commits all requests at once, currently each type of request is a seperate transaction (i.e. all update requests happen in one transaction and all delete requests happen in a seperate transaction)
  To spawn a new batch object
  batch = db.batch()
  Get
  Retrieves the current entries in the batch request.
  getBatch()
  batch.getBatch()
  Set
  Adds a set request to the current batch.
  set(doc_ref: str, payload: dict)
  batch.set(doc_ref, { 'name' : 'Mario', 'Age' : 24 })
  Update
  Adds an update request to the current batch.
  update(doc_ref: str, payload: dict)
  batch.update(doc_ref, { 'name' : 'Mario', 'Age' : 24 })
  Adds a delete request to the current batch.
  delete(doc_ref: str)
  batch.delete(doc_ref)
  Commit
  Commits all current batch requests to the Firestore database. This also clears the batch for the next use.
  commit()
  batch.commit()
  Contributing
  If you would like to help improve/add features to the package. Please feel free to branch off the github repository. I will try to make updates and review merge requests as soon as possible.
  Disclaimer
  This software is provided free of charge. The software is not in conjunction with, reviewed by, or a representation of, the Google Cloud Services Platform. It is intended only to be used at the risk of the developer. I am not responsible for lost or corrupted data, and it is recommended that you test your requests in a development environment before altering any production level database.
  Project details
  Release history Release notifications
  Download files
  Download the file for your platform. If you're not sure which to choose, learn more about installing packages.