firebase:使用 admin sdk 删除提供者

firebase: Delete a provider using admin sdk

使用 Admin-sdk,有没有办法从 firebase 的用户记录中删除特定提供者?

例如: 假设给定用户将以下提供商链接到他的帐户

  1. 密码
  2. google.com
  3. facebook.com

比如说,我想撤销用户通过 facebook 登录他的帐户的能力。这可以使用 admin sdk 来完成吗?

我只能找到一个 api 来取消链接提供商(这是客户端 api。这将需要用户的 firebase-issued-idToken)。

我认为 Admin SDK 中没有 API 取消 link 提供商的功能。它确实存在于REST API中,但它似乎也只对当前用户存在。

但我也不认为这会有多大帮助,因为用户始终可以使用您的配置数据调用 API 到 link 那个提供者 - 即使您的应用程序代码没有.因此,虽然能够从您的代码中取消 link 提供程序很有用,但它不会是永久撤销,这似乎是您所追求的。只有完全禁用 Facebook 提供商,所有用户才能做到这一点。

不确定何时在 admin sdk 中添加了此功能,但似乎在 8.1.0 版本中您可以使用以下方法实现此功能:

UserRecord.UpdateRequest updateRequest = new UserRecord.UpdateRequest(ssoId);
// remove/unlink social login providers
updateRequest.setProvidersToUnlink(Arrays.asList("google.com", "facebook.com", "apple.com"));            

FirebaseAuth.getInstance().updateUser(updateRequest);