如何在删除 firebase 帐户后删除链接的 google 帐户的访问权限?

How to remove the access rights to a linked google account after the deletion of an account at firebase?

我刚刚实现了删除 Android 应用程序在 Firebase 的个人帐户的可能性。然后我发现即使 Firebase 帐户已被删除,该应用程序仍列在具有访问权限的 Google 帐户中。

如果您已经实施了使用 Google 将您的用户登录到 Firebase 的选项,那么很可能您已经执行了以下步骤:

根据:

I just implemented the possibility to delete the personal account at Firebase of an Android application.

如果您 删除了 Firebase 身份验证帐户,这并不意味着与 Google 相关的所有内容都被清除了,因为它没有。

为了达到你想要的效果,我建议你按照我添加的确切顺序执行以下步骤:

  1. Sign-out 来自 Google 的用户使用 SignInClient#signOut() 方法。

Signs out the currently signed-in user if any.

  1. 使用 FirebaseUser#delete() 方法删除 Firebase 用户帐户:

Deletes the user record from your Firebase project's database. If the operation is successful, the user will be signed out.

  1. 删除 Cloud Firestore using DocumentReference#delete(), or the Realtime Database using DatabaseReference#removeValue() 中的所有数据(如果存在)。

所以在情况2中,没有必要明确地从Firebase注销用户,因为当你删除账户时,用户会自动注销。

P.S。还请记住,所有三个操作都是 异步的 。所以你需要等到操作完成。在 java 中,您可以使用 LiveData object and in Kotlin you can use Kotlin Coroutines.

编辑:

关于FirebaseUser#unlink(String provider)方法,它只有:

Detaches credentials from a given provider type from this user.

我什至写了一篇关于这个话题的文章: