在可调用的云函数中删除用户及其Firestore文档,可以按照以下步骤进行操作:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.deleteUserAndDocuments = functions.https.onCall(async (data, context) => {
// 验证调用者的身份,确保只有授权用户可以调用该函数
if (!context.auth) {
throw new functions.https.HttpsError('unauthenticated', '只有授权用户可以调用该函数!');
}
const uid = data.uid; // 要删除的用户的UID
try {
// 删除用户
await admin.auth().deleteUser(uid);
// 删除用户的Firestore文档
const userDocRef = admin.firestore().collection('users').doc(uid);
await userDocRef.delete();
return { message: '用户及其文档删除成功!' };
} catch (error) {
throw new functions.https.HttpsError('internal', '删除用户及其文档时出错:' + error.message);
}
});
在上述代码中,我们首先验证调用者的身份,确保只有授权用户可以调用该函数。然后,我们使用admin.auth().deleteUser(uid)
方法来删除用户,并使用admin.firestore().collection('users').doc(uid).delete()
方法来删除用户的Firestore文档。
const deleteUserAndDocuments = firebase.functions().httpsCallable('deleteUserAndDocuments');
deleteUserAndDocuments({ uid: '要删除的用户的UID' })
.then(result => {
console.log(result.data.message); // 打印成功消息
})
.catch(error => {
console.error('删除用户及其文档时出错:', error); // 打印错误消息
});
在上述代码中,我们使用firebase.functions().httpsCallable
方法来获取对应的云函数,并调用它来删除用户及其文档。
这样,当你调用这个可调用的云函数时,它将删除指定用户及其Firestore文档,并返回一个成功消息。
请注意,上述代码仅为示例,你需要根据你的实际需求进行适当的修改和错误处理。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云