如何以Firebase Auth用户身份使用Python Firestore SDK?支持用户令牌吗?
Python Firestore SDK 支持用户身份认证操作吗?
明确回答:Python的Firestore SDK不仅支持服务账号认证,也可以通过用户的id_token或refresh_token实现以终端用户身份操作Firestore。
具体实现方式
借助Firebase Admin SDK,你可以通过用户的refresh_token生成身份凭证,以此初始化Firestore客户端,所有操作都会以该用户身份执行:
- 先安装依赖:
pip install firebase-admin
- 示例代码:
import firebase_admin from firebase_admin import credentials, firestore # 用用户的refresh_token创建身份凭证 user_cred = credentials.RefreshToken("你的用户refresh_token") firebase_admin.initialize_app(user_cred) # 初始化Firestore客户端,此时操作受该用户权限限制 db = firestore.client() # 示例:读取用户有权限访问的文档 user_doc = db.collection("users").document("用户UID").get() if user_doc.exists: print(f"文档内容: {user_doc.to_dict()}") else: print("文档不存在")
补充说明
id_token也可以用于验证用户身份,但它的有效期通常只有1小时,无法直接用来持久化初始化客户端;而refresh_token可以长期使用,用来自动刷新获取新的id_token。- 用户身份的操作完全受Firestore安全规则限制,只能访问其权限范围内的资源,这和服务账号的管理员权限有本质区别。
内容的提问来源于stack exchange,提问作者Martol1ni
相关产品推荐
相关产品推荐

