我知道这个问题已经被问过很多次了,我的问题与Firebase Console有关,告诉我即使我的应用程序成功接收到注册令牌,我的应用程序也从未与服务器进行通信。
当我卸载并重新安装我的应用程序时,它会调用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' }
}
}
答案 0 :(得分:0)
您是否还在清单中包含了意图过滤器?像这样:
<service
android:name=".FirebaseServiceClassName"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>