使用Firebase身份验证时令牌服务API中的错误请求

时间:2018-01-09 08:41:55

标签: android firebase google-api firebase-authentication google-oauth

最近我注意到Firebase数据库没有在我们的Android应用程序中为某些用户正确地同步本地更改与远程数据库。监视.info/connected路径表示从未为这些用户正确建立连接,并且通过FirebaseAuth.addAuthStateListener侦听身份验证状态将返回非空当前用户。

我已使用FirebaseDatabase.setLogLevel(Logger.Level.DEBUG)调试了此问题,并且这些消息似乎在应用处于活动状态时每隔一秒重复一次:

D PersistentConnection: pc_0 - Trying to fetch auth token
W BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms
D PersistentConnection: pc_0 - Error fetching token: An internal error has occurred. [ TOKEN_EXPIRED ]
D PersistentConnection: pc_0 - Scheduling connection attempt
D ConnectionRetryHelper: Scheduling retry in 767ms

查看Google API控制台,我可以看到"令牌服务API"的许多400 Bad Request错误用于Android应用程序使用的凭据。 API方法是google.identity.securetoken.v1.SecureToken.GrantToken。这不是我们的应用程序手动调用的 - 我相信Firebase Auth会在内部使用它来保持令牌最新。

在我看来,FirebaseAuth库在尝试刷新过期的身份验证令牌时会执行错误的请求。有没有人遇到过类似的问题?我很难找到这个问题的根本原因,因为它不能立即重现(仅限某些用户使用谷歌和电子邮件提供商)。我不确定是否可以通过某种方式深入了解令牌服务API日志以获取更详细的消息?使用Firebase身份验证(iOS和Web)的其他客户端正在运行,没有任何问题。

1 个答案:

答案 0 :(得分:0)

我有同样的错误;解决方法:

  1. 转到https://console.developers.google.com/apis/credentials
  2. 单击API密钥
  3. 启用“令牌服务API”以及“ Identity Toolkit API”