如何使用Firebase Admin SDK删除用户关联的特定登录提供商
可以通过Firebase Admin SDK实现指定登录提供商的解绑操作
Firebase Admin SDK的用户管理模块原生支持服务端侧修改用户的登录提供商关联信息,不需要依赖用户端提交的idToken,完全可以直接收回指定登录方式的访问权限。
实现方法
核心调用Admin SDK Auth模块的updateUser方法,将需要解绑的提供商ID传入deleteProvider参数即可,以下是Node.js环境的代码示例:
const admin = require('firebase-admin'); // 注:使用前需先完成Admin SDK的服务账号初始化配置 async function unlinkProviderForUser(userUid, targetProviderId) { await admin.auth().updateUser(userUid, { deleteProvider: [targetProviderId] }); } // 调用示例:解绑指定用户的facebook登录权限 unlinkProviderForUser('你的目标用户UID', 'facebook.com') .then(() => { console.log('指定登录提供商解绑完成'); }) .catch((error) => { console.error('解绑操作失败:', error); });
补充说明
- 你问题中提到的三类登录提供商对应的ID分别为
password(邮箱密码登录)、google.com、facebook.com,直接传入对应字符串即可完成解绑 - 支持同时解绑多个提供商,只需将多个提供商ID放到
deleteProvider数组中即可,例如deleteProvider: ['facebook.com', 'google.com']会同时解绑谷歌和脸书的登录权限 - 操作生效后,用户将无法再通过已解绑的提供商登录当前账号,除非后续重新完成绑定流程
内容的提问来源于stack exchange,提问作者iwekesi
相关产品推荐
相关产品推荐

