【发布时间】:2016-05-23 15:33:49
【问题描述】:
当我使用 Facebook 的 Parse 时,我可以在开发过程中测试通知(即 Play 商店中没有应用程序)。但现在我正试图在我的应用程序中实现 Firebase。我的应用程序尚未发布。我已经完成了 android 端的实现,并正在尝试从 Firebase 控制台向我的应用发送通知。但我的设备从未收到通知。这是为什么?我的目标是“所有用户”,因为 firebase 没有版本或我的任何主题。
好的
所以我又做了一些故障排除,结果如下:我的设备正在接收通知,但它却很奇怪:
当应用打开并且用户与之交互时,通知会通过调用
onMessageReceived的预期路径。当应用关闭时(也不是在最近的应用中),通知会跳过调用
onMessageReceived并在状态栏中显示通知。
但是当 onMessageReceived 被跳过时,这是来自 FireBase 的日志
05-24 07:15:52.842 D/TimaKeyStoreProvider: TimaSignature is unavailable
05-24 07:15:52.842 D/ActivityThread: Added TimaKeyStore provider
05-24 07:15:53.102 D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
05-24 07:15:53.132 D/FirebaseApp: Initialized class com.google.firebase.iid.FirebaseInstanceId.
05-24 07:15:53.142 D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
05-24 07:15:53.222 I/FA: App measurement is starting up, version: 9080
05-24 07:15:53.222 I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
05-24 07:15:53.352 D/FirebaseApp: Initialized class com.google.android.gms.measurement.AppMeasurement.
05-24 07:15:53.352 I/FirebaseInitProvider: FirebaseApp initialization successful
05-24 07:15:53.372 D/AlgorithmsProvider: onCreate
05-24 07:15:53.452 I/FA: Tag Manager is not found and thus will not be used
【问题讨论】:
-
你可以像解析一样随时测试。 Parse 使用与 Firebase 相同的东西
-
我一直在尝试,它终于开始工作了。但我看到了一个问题。当我的应用程序打开时,通知会发送到
FirebaseMessagingService#onMessageReceived(我正在记录它)。但是如果我的应用没有打开,那么我会在设备的状态栏中看到一条通知,但 onMessageReceived 永远不会接到电话。 -
这听起来确实像通知的预期行为。如果您想更好地控制所发生的事情,您将需要使用 Firebase Cloud Messaging(GCM 的更名和更新版本)。
-
@KatedralPillon 如果您想更好地控制发生的事情,请不要在您的有效负载中放置
notification标签并使用数据标签。使用数据标签将始终调用您的 onMessageReceived -
@FrankvanPuffelen 我正在从 GCM 迁移。我正在尝试利用从控制台发送通知,而不是从我的服务器发送通知。 @tyczj,这种通知与数据标签的区别听起来很有希望,但我不相信我正在使用通知标签。我会在控制台的哪个位置进行区分?据我所知,我正在使用
Advanced Options下的数据标签
标签: android firebase google-cloud-messaging android-notifications firebase-cloud-messaging