迁移Firebase JS函数至Python:是否支持Auth用户删除事件监听器?
Firebase Auth用户删除触发器的Python等价方案说明
Firebase Functions的Python SDK目前不支持Auth用户删除(onDelete)的触发器,你没有遗漏相关内容——这类Auth生命周期事件的触发器(包括用户创建、删除等)目前仅在Node.js/TypeScript SDK中提供,Python SDK暂未实现对应功能。
如果需要用Python处理用户删除后的文档清理逻辑,可以参考以下替代方案:
方案1:Node.js触发器中转 + Python Pub/Sub订阅
用极简的Node.js函数监听Auth用户删除事件,将用户ID转发到Cloud Pub/Sub,再用Python编写Pub/Sub订阅函数处理文档删除:
Node.js中转函数
exports.forwardUserDelete = functions.auth.user().onDelete((user) => { const pubsub = require('@google-cloud/pubsub')(); const topic = pubsub.topic('user-deleted-topic'); return topic.publishJSON({ uid: user.uid }); });
Python Pub/Sub订阅函数
import functions_framework from google.cloud import firestore import base64 import json db = firestore.Client() @functions_framework.cloud_event def handle_user_delete(cloud_event): data = base64.b64decode(cloud_event.data['message']['data']).decode('utf-8') user_data = json.loads(data) user_uid = user_data['uid'] # 删除对应的用户文档 db.collection('users').document(user_uid).delete() return 'User document deleted'
方案2:后端业务逻辑中同步处理
如果你的用户删除操作是通过自有后端API发起的,可在调用Firebase Admin SDK删除用户的同时,直接执行Python代码删除对应文档:
import firebase_admin from firebase_admin import auth, firestore firebase_admin.initialize_app() db = firestore.client() def delete_user_and_doc(user_uid): # 删除Auth用户 auth.delete_user(user_uid) # 删除对应Firestore文档 db.collection('users').document(user_uid).delete()
内容的提问来源于stack exchange,提问作者okay
相关产品推荐
相关产品推荐

