我有一个Android应用程序,它通过Facebook使用Firebase身份验证。用户可以使用以下功能删除应用程序中的帐户:
override fun deleteUserAcc() {
val user = FirebaseAuth.getInstance().currentUser
val userToken = FacebookAuthProvider.getCredential(authTokenProvider.provideToken())
user?.reauthenticate(userToken)?.addOnCompleteListener { task ->
user.delete()
}
}
此后,用户确实在Firebase服务器上被删除。但是,当他们再次尝试访问应用程序并再次登录时,他们无法执行此操作(他们使用uid的帐户已被删除,并且不知何时他们没有分配新的uid)。
登录函数和onSuccess回调都已实现并被调用。
override fun login(): Completable {
LoginManager.getInstance().logInWithReadPermissions(
activityReference.get(),
listOf("public_profile", "user_birthday", "user_location")
)
return CompletableSubject.create().apply {
loginSubject = this
}
}
override fun onSuccess(result: LoginResult) {
val credential = FacebookAuthProvider.getCredential(result.accessToken.token)
authTokenProvider.saveToken(result.accessToken.token)
firebaseAuth.signInWithCredential(credential)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
getInfoOnFirestore(loginSubject)
} else {
loginSubject.onError(task.exception!!)
}
}
}
可能导致以下问题的原因是什么?