【问题标题】:Increase timeout to get push token in FCM增加超时以在 FCM 中获取推送令牌
【发布时间】:2022-11-03 20:14:16
【问题描述】:

我们有一个客户端使用我们的应用程序,该应用程序的互联网连接不佳,当我们尝试从应用程序内的 FirebaseMessaging 获取令牌时,我们看到 FCM 超时:

java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: TIMEOUT
    at com.google.firebase.messaging.FirebaseMessaging.blockingGetToken(FirebaseMessaging.java:625)
    at com.google.firebase.messaging.FirebaseMessaging.lambda$getToken$4$com-google-firebase-messaging-FirebaseMessaging(FirebaseMessaging.java:392)
    at com.google.firebase.messaging.FirebaseMessaging$$ExternalSyntheticLambda10.run(D8$$SyntheticClass)

我们的客户端使用的其他 URL 存在一些问题,结果证明从 HTTP 增加读/写/连接超时可以解决问题,如下所示:

OkHttpClient().newBuilder()
            .connectTimeout(60L, TimeUnit.SECONDS)
            .readTimeout(60L, TimeUnit.SECONDS)
            .writeTimeout(60L, TimeUnit.SECONDS)
            .build()

我搜索任何这样的配置,但找不到任何东西。有没有办法在使用 Firebase 云消息传递请求推送令牌时增加超时?

【问题讨论】:

    标签: android firebase push-notification firebase-cloud-messaging


    【解决方案1】:

    用您自己的或更开放和可配置的方式替换专有的 Firebase 实现,例如UnifiedPush

    Signal、FairEmail、Element 和 Telegram FOSS 都有自己的运行良好的实现。

    如果你真的需要使用 Firebase,不要让它成为硬依赖。这种超时崩溃对于在发生此异常之前运行良好的应用程序也是众所周知的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2016-09-24
      • 2016-10-13
      相关资源
      最近更新 更多