Simple Firestore collection definitions and queries using pydantic schemas and Firestore query API.
Project description
Firestore Collections
Simple Firestore collection definitions and queries using pydantic schemas and Firestore query API.
A quick and easy way to make use of the NoSQL document database solution Firestore available in Google Cloud Platform.
Requirements
- Python 3.6+
Features
- Schema definition and validation: Define collection schemas using
pydantic
and built-in type hinting (typing
). - Automatic IDs: Automatic ID generation using 12-byte hexadecimal (
bson.ObjectId
). - Simple queries: Query collections using a simple interface.
- Auxiliary timestamps: Automatically added timestamps to objects like
created_at
andupdated_at
.
Example
Define users collection and perform different queries:
from typing import Optional
from pydantic import EmailStr, SecretStr
from firestore_collections import Collection, Schema
class User(Schema):
__collection_name__ = 'users'
email: EmailStr
full_name: str = None
password: Optional[SecretStr]
# Initialize firestore collection
collection = Collection(schema=User)
# Initialize user object
user = User(
email='john@doe.com',
full_name='John')
# Insert
user = collection.insert(user)
# Get object from db
user = collection.get(user.id)
# Update
user.full_name = 'John Doe'
collection.update(user)
# Get by attribute
user = collection.get_by_attribute('email', 'john@doe.com')
# Get all objects
users = collection.get_all()
# Delete object
collection.delete(id=user.id)
License
This project is licensed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for firestore-collections-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f594ff92348435004d1cc34e6f1c1a4d4b24948dadb79b181728d6c4aed3b4d |
|
MD5 | 14e8ac3f9a05581356630426483c2650 |
|
BLAKE2b-256 | 964f649830f5b577e0c7dcbd0ed7352886570ce931156696320bff2d9f9f2d11 |