【问题标题】:FirebaseMessagingService onNewToken() is called but not onMessageReceived()FirebaseMessagingService onNewToken() 被调用但不是 onMessageReceived()
【发布时间】:2020-04-17 16:33:13
【问题描述】:

我知道这个问题已经被问过很多次并得到了回答,我的问题与 Firebase 控制台有关,告诉我即使我的应用成功接收到注册令牌,我的应用也从未与他们的服务器通信。

当我卸载并重新安装我的应用程序时,它会调用 FirebaseMessagingService 类(或更确切地说是从它扩展的类)的 onNewToken() 方法。

即使 FirebaseInstanceId.getInstance().getInstanceId() 也能正常工作并获取令牌。

但是由于 firebase 控制台说该应用程序从未与他们的服务器通信,所以当我从控制台发送通知时,它不会到达我的手机。至少,onMessageReceived() 永远不会被调用。

我不知道是否有办法过滤 logcat 以查明电话是否确实收到了通知,以及我的设置是否存在其他问题。如果你知道这样的方法,那也有帮助。

无论如何,如果您有任何建议,我将不胜感激。我试图从控制台发送带有/不带有数据的通知。我什至尝试发送到一个主题并让应用订阅该主题。然而,onMessageReceived() 没有被调用并且通知没有被显示。很沮丧。请帮忙。

app/build.gradle 有:

dependecies {
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.google.firebase:firebase-messaging:20.0.0'
}

apply plugin: 'com.google.gms.google-services'

project/build.gradle 有:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'
        classpath 'com.google.gms:google-services:4.3.2'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:

    您是否还在清单中包含了意图过滤器?像这样:

    <service
        android:name=".FirebaseServiceClassName"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    

    【讨论】:

      猜你喜欢
      • 2018-10-01
      • 2020-06-07
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多