FirebaseInstanceId.getInstanceId() 在连接到 iPhone 的 WearOS 设备上因 SERVICE_NOT_AVAILABLE 失败

FirebaseInstanceId.getInstanceId() failing with SERVICE_NOT_AVAILABLE on WearOS device connected to iPhone

连接到 iPhone 的 WearOS 设备最近开始在调用 FirebaseInstanceId.getInstanceId() 时出现 SERVICE_NOT_AVAILABLE 错误。确切的例外是:

2018-12-07 14:37:26.529 5093-5093/com.xxxxx.xxxxxx E/OurFirebaseActivity: Could not get Firebase token. Exception: java.io.IOException: SERVICE_NOT_AVAILABLE
    java.io.IOException: SERVICE_NOT_AVAILABLE
        at com.google.firebase.iid.zzr.zza(Unknown Source:66)
        at com.google.firebase.iid.zzr.zza(Unknown Source:79)
        at com.google.firebase.iid.zzu.then(Unknown Source:4)
        at com.google.android.gms.tasks.zzd.run(Unknown Source:5)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

这似乎并不仅仅针对我们的应用程序,在查看设备日志时,这似乎也发生在其他 apps/services 上。

2018-12-07 14:02:48.931 891-3870/? I/GCM: Registration for wearable paired to iOS
2018-12-07 14:02:48.956 857-857/? D/AltFCMManager: reading APNS_TOKEN dataitem found a null dataitem: 
2018-12-07 14:02:49.107 857-881/? I/zygote: Background concurrent copying GC freed 
2018-12-07 14:02:53.950 891-3870/? W/GCM: Timed out getting APNS token from clockwork
2018-12-07 14:02:53.963 4509-4544/? E/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE

所有 firebase 库组件都是最新的。还确认 GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) returns 在这些设备上成功。

也许最近的 Google Play 服务更新破坏了此设备组合上的 FCM?

这是由 iPhone 的 WearOS 应用程序中的一个问题引起的,Google 于 2019 年 1 月上旬发布了 v3.11.27 的修复程序。