如何通过Python SDK访问Firebase指定命名的Cloud Firestore数据库
Python Admin SDK访问Firestore多数据库解决方案
核心实现方式
Firebase Admin SDK for Python中,指定目标数据库不是在initialize_app阶段配置,而是在获取Firestore客户端时传入database参数。之前修改initialize_app的options和name参数无效,是因为这两个参数用于区分不同Firebase App实例,而非指定Firestore数据库。
直接上可运行代码:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # 1. 初始化Firebase App(只需执行一次,无需重复初始化) cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) # 2. 获取默认生产数据库客户端 prod_db = firestore.client() # 3. 获取开发数据库客户端(替换为你的开发数据库ID) dev_db = firestore.client(database="your-dev-database-id") # 示例操作:向开发数据库写入数据 dev_db.collection("test_collection").document("test_doc").set({"message": "Hello Dev DB"})
关键注意事项
- 确认数据库ID正确性:在Firebase控制台切换到目标数据库后,URL中会显示数据库ID(格式类似
projects/your-project-id/databases/dev-db,只需取最后一段dev-db);也可在GCP控制台的Firestore数据库列表中查看完整ID。 - 无需创建多App实例:同一项目下的多个Firestore数据库,共享同一个Firebase App实例即可,不需要通过
initialize_app的name参数创建多个App。 - 权限检查:确保使用的服务账号拥有目标数据库的访问权限,需在GCP IAM中为账号分配
Firestore Database User或对应权限角色。
内容的提问来源于stack exchange,提问作者1ncr3
相关产品推荐
相关产品推荐

