The Google Cloud Firestore API is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud Platform.
Mobile apps
Set up your development environment
We are going to use python-firestore as Firestore API client.
Install on Mac/Linux using virtualenv
pip3 install virtualenv virtualenv <your-env> source <your-env>/bin/activate <your-env>/bin/pip3 install google-cloud-firestore
Initialize Cloud Firestore
To use the SDK we’ll need to have a Service Account Key. You can generate this by using Firebase Console > Project Settings. Then selecting Service accounts and clicking Generate new private key. This will produce a .json file with the credentials needed to access the Firebase project.
from google.cloud import firestore firestore_client = firestore.Client.from_service_account_json('app.json') ref = firestore_client.collection('users')
Add data
Auto generate document id
doc_ref = ref.document()
Specify document id
doc_ref = ref.document('user1')
Create data
doc_ref.set({ 'first': 'Joe', 'last': 'Black', 'born': 1985 })
Update data
doc_ref.update({ 'last': 'Green', })
Delete
doc_ref.delete()
Read data
doc_ref = ref.document('user1') doc = doc_ref.get() if doc.exists: print(doc.id, doc.get('first'), doc.to_dict())
Query data
# all for doc in ref.stream(): print(u'{} => {}'.format(doc.id, doc.to_dict())) # limit users_limit = ref.limit(2) docs = users_limit.get() for doc in docs: print(u'Data:{}'.format(doc.to_dict())) # where query = ref.where('first', '==', 'Joe').where('born', '>=', 1980) docs = query.stream() for doc in docs: print(doc.id, doc.get('first'), doc.to_dict()) # order query = ref.where('born', '>=', 1980).order_by('first') # get total row row_count = len(list(docs))
Batch update
batch = firestore_client.batch() for i in range(10): data = { 'first': 'User{}'.format(i), 'botn': 2000 + i } row_ref = ref.document() batch.set(row_ref, data) batch.commit()