FireO – Google Firestore ORM 库:Python NoSQL 数据库实战指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Google Firestore 是 Firebase 提供的云端 NoSQL 数据库,专为存储 JSON 文档设计,非常适合构建可扩展的实时应用。然而,直接通过 google-cloud-firestore 操作 Firestore 并不总是很方便,尤其是当你习惯了面向对象和类型化代码的开发方式时。

FireO —— Google Firestore 的 ORM 库 —— 是一款 Python 库,它通过提供类似流行 ORM 的接口,简化了 Firestore 的操作。模型、字段、数据验证、关联关系 —— 这些在 Firebase 世界中现在都已触手可及。

什么是 FireO?为什么要使用它?

FireO(Firebase ORM)是用 Python 编写的 Google Firestore 对象关系映射库。它允许开发者像操作传统关系型数据库一样使用 Firestore,通过类和对象代替直接调用 API 查询。

FireO 的主要优势:

  • 使用简单:直观的语法,类似 Django ORM
  • 字段类型化:严格类型化,并自动进行数据验证
  • 数据验证:保存前内置数据检查
  • 关联支持:处理引用字段和嵌套结构
  • 元数据自动管理:自动生成时间戳
  • 数据迁移:简化数据结构管理

安装与配置 FireO

安装库

pip install fireo

配置身份验证

要使用 Firestore,需要通过服务账号进行身份验证:

  1. 在 Firebase 控制台中创建服务账号
  2. 下载 JSON 密钥文件
  3. 在环境变量中指定密钥路径:
export GOOGLE_APPLICATION_CREDENTIALS="path/to/your-key.json"

替代连接配置

from fireo import connection

# 通过文件连接
connection(from_file="path/to/serviceAccountKey.json")

# 通过环境变量连接
connection()

Firestore 基础与文档型模型

Firestore 数据结构

Firestore 按以下层级存储数据:

  • 数据库 → 集合 → 文档 → 字段
  • 文档 可以包含子集合
  • 字段 支持多种类型:字符串、数字、数组、对象等

NoSQL 的特点

Firestore 是无模式数据库,这意味着:

  • 同一集合中的文档可以有不同的字段
  • 无需预先定义数据结构
  • 数据结构修改灵活

FireO 在此灵活性之上增加了结构化和数据验证层。

在 FireO 中创建模型

基础模型

from fireo.models import Model
from fireo.fields import TextField, NumberField, BooleanField

class User(Model):
    name = TextField(required=True, max_length=100)
    age = NumberField(required=True)
    is_active = BooleanField(default=True)
    
    class Meta:
        collection_name = "users"  # 可选,默认使用类名

带验证的扩展模型

from fireo.fields import EmailField, DateTimeField, ListField
from datetime import datetime

class Profile(Model):
    user_id = TextField(required=True)
    email = EmailField(required=True)
    created_at = DateTimeField(default=datetime.now)
    tags = ListField                    

推荐