firebase 安卓Google One-Tap in Jetpack Compose

chhkpiq4  于 2023-08-07  发布在  Go
关注(0)|答案(1)|浏览(84)

我把一个点击整合到我的应用程序中,它工作得很好。为了做一些实验,我点击按钮,然后取消。现在,当我点击按钮时,屏幕上没有任何东西显示,我得到了一个异常。
异常:com.google.android.gms.common. apiException:16:呼叫者因取消登录提示太多而被暂时阻止。
我该如何解决这个问题?
Android Google One-Tap异常

2izufjch

2izufjch1#

我点击按钮然后取消。
是的,你做了太多次了。这就是你犯这个错误的原因。在官方文档和这个article中,提到重复执行的这种做法会引发异常:
如果用户拒绝登录,则对getSignInCredentialFromIntent()的调用将抛出ApiExceptionCommonStatusCodes.CANCELED status code
在文档中还提到:
发生这种情况时,您应该暂时禁用一键登录UI,这样您就不会重复提示打扰您的用户。
因为我知道你遵循了这个resource,并且你正在Android中实现它,解决这个问题的关键也在于文档中:
下面的示例通过在Activity上设置一个属性来实现这一点,它使用该属性来确定是否向用户提供一键式登录;但是,也可以将值保存到SharedPreferences或使用其他方法。
重要的是要实现您自己的一键登录提示的速率限制。如果您不这样做,并且用户连续取消了几个提示,则一键式客户端将不会在接下来的24小时内提示用户。
所以你得等上24小时才能再次被列入白名单。
但是,如果你不想等待24小时,请检查文档中的注解:
如果您在开发过程中遇到24小时冷却时间,您可以通过清除Google Play服务的应用存储来重置冷却时间。或者,要在测试设备和/或模拟器上打开/关闭此冷却时间,只需转到Dialer应用程序并输入以下代码:66382723#提交后,不会有反馈,但您的拨号器将清除所有输入并可能关闭。冷却时间应该在此之后关闭。要重新打开它,请再次输入相同的代码。

相关问题