android - 使用 Firebase 身份验证时 token 服务 API 中的错误请求

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

最近我注意到,对于我们的一些用户,Firebase 数据库没有正确地将本地更改与我们的 Android 应用程序中的远程数据库同步。监控.info/connected path 表示永远不会为这些用户正确建立连接,并通过 FirebaseAuth.addAuthStateListener 监听身份验证状态返回非空当前用户。

我已经用 FirebaseDatabase.setLogLevel(Logger.Level.DEBUG) 调试了这个问题。当应用程序处于 Activity 状态时,这些消息似乎每隔一秒左右就会重复一次:

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 控制台内部,我可以看到很多 400 Bad Request Android 应用程序使用的凭据的“ token 服务 API”错误。 API方法是google.identity.securetoken.v1.SecureToken.GrantToken .我们的应用程序不会手动调用它 - 我相信 Firebase Auth 在内部使用它来保持 token 最新。

在我看来,FirebaseAuth 库在尝试刷新过期的身份验证 token 时发出了错误的请求。有没有人遇到过类似的问题?我很难找到这个问题的根本原因,因为它不能立即重现(只发生在使用谷歌和电子邮件提供商的某些用户身上)。我不确定是否可以通过某种方式挖掘 token 服务 API 日志以获得更详细的消息?其他使用 Firebase 身份验证的客户端(iOS 和 Web)正常工作。

最佳答案

我有同样的错误;通过以下方式解决了它:

  • 前往 https://console.developers.google.com/apis/credentials ,
  • 单击 API key
  • 启用“ token 服务 API”以及“身份工具包 API”
  • 关于android - 使用 Firebase 身份验证时 token 服务 API 中的错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164248/

    相关文章:

    firebase - 错误 : Cloud not find the correct Provider<List<Brew>> above this BrewList Widget

    firebase - 使用云函数在firestore中创建文档

    javascript - Google 登录 API 挂起并出现 Uncaught Error 无法从 URL 哈希获取父源

    android - 我是否获得了验证用户的 Android 应用内订阅的正确步骤?

    android - 我们如何减少选项卡布局文本与其指示器之间的差距

    android - 如何使用 Retrofit2 + RxJava 添加授权 header

    android - 如何使用两种不同的 Realm 配置

    java - 编辑文本上的变量已更改监听器

    android - 试图了解需要将哪些 SHA-1(开发和发布)添加到 firebase android 项目

    ruby-on-rails - Rails Geocoder Gem 如何访问 Google API?