当前位置: 首页 > 知识库问答 >
问题:

调用了Firebase MessagingService onNewToken(),但没有调用onMessageReception()

慎建本
2023-03-14

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

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

甚至FirebaseInstanceId.getInstance()。getInstanceId()工作正常并获取令牌。

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

我不知道是否有办法过滤logcat,以确定手机是否确实收到了通知,以及我的设置中是否存在其他错误。如果你知道这样一种方法,那也会有帮助。

无论如何,如果你有任何建议,我将不胜感激。我尝试从控制台发送带有/不带有数据的通知。我甚至尝试发送到一个主题,并让应用程序订阅该主题。然而,未调用onMessageReceived(),也未显示通知。非常沮丧。请帮忙。

应用程序/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'

项目/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' }
    }
}

共有1个答案

鲁斯伯
2023-03-14

您是否也将意图过滤器包含在您的清单中?这样地:

<service
    android:name=".FirebaseServiceClassName"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>
 类似资料:
  • 我有个问题。也许这是非常基本的。我们可以这样做吗 而不实际调用我们测试类中的方法? 我的测试类: 如您所见,“提供者”只被嘲笑而没有被显式调用。调用它的唯一方法是当我调用action.update()时;我得到了错误 通缉但未调用:实际上,与此模拟没有任何交互。provider.get名称()

  • 问题内容: 您能帮忙检查一下为什么doFilter没有被调用吗 web.xml: 类签名: 调用http:// localhost:8080 / hello / world时 返回404 ,我在doFilter处设置了断点,看来doFilter没有被调用?(我尝试了tomcat 6.0.18、6.0.29,jdk1.6) 问题答案: 在以下情况下将不会调用该过滤器: 过滤器类在类路径中丢失和/或不

  • 扩展SherlockFragment的类具有setHasOptionsMenu(true);在onCreate()方法中。即使这样,在运行应用程序时,它也不会调用onCreateOptionsMenu()方法。 我在SO中读过这些类似的问题(Q1,Q2),没有得到任何帮助。 那会是什么原因呢? 我正在做的是,我正在从下面的地方调用一些其他的SherlockFragments。 不调用的是那些inn

  • 我编写了一个类,该类重写class Object中的equals(Object)方法,以使用对象的实例值将类类型的对象与类类型的其他对象进行比较。 当我将对象的一个实例作为键放在HashMap中,然后使用一个新的但相同的对象作为键调用映射上的get(object),它返回null。 我尝试将一个新的,相同的对象传递给equals方法,它返回true,所以问题不在于我的比较代码。 从我通过调试收集的

  • 我有一个已经可见的活动(所以onstart已经运行),我拉下通知栏,点击与所述活动的挂起意图相关联的通知。1)调用了停顿。请注意,不调用onStation 2)创建一个新的活动实例,然后调用onstart等... 正如我建议的那样,我尝试了singleTask和singleInstance,但它们不会阻止在调用onPause后创建新实例。有趣的是,只有当活动可见且我单击其通知时,才会发生这种情况。