【发布时间】:2018-12-25 12:09:30
【问题描述】:
调用 AuthUI.getInstance().signOut(this) 从 Firebase 帐户退出会显示 Google Play 服务“电话”访问权限请求对话框(如果用户出于任何原因禁用了此类权限)。
如果用户拒绝给予访问注销失败:
com.google.android.gms.common.api.ApiException: 17: Error resolution was canceled by the user, original error message: CANCELED: null
同时无需手机权限即可登录。
- 要求获得此类退出权限的原因可能是什么?
- 是否可以通过其他方式退出而不强制用户授予访问权限?
来自谷歌docs,这包括下一个:
READ_PHONE_STATE
READ_PHONE_NUMBERS
CALL_PHONE
ANSWER_PHONE_CALLS
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
考虑到登录是使用电子邮件或 Google 帐户(不是电话/短信),我在此列表中看不到任何与帐户或 Firebase 相关的内容。再一次,登录不需要任何权限。
稍后添加:调试尝试后,我发现 signOut() 最终调用 signOutIdps() 进而调用 GoogleSignIn.getClient(context , GoogleSignInOptions.DEFAULT_SIGN_IN)。signOut() 但在 Android Studio 中没有更多可用的源代码。
【问题讨论】:
标签: android firebase firebase-authentication