我工作的一个Android项目中,用户将订阅火力地堡的话题。 我写的代码如下图所示。
FirebaseMessaging.getInstance().subscribeToTopic("update")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (!task.isSuccessful()) {
Log.d("SUBSCRIPTION","FAILURE");
}else{
Log.d("SUBSCRIPTION","SUCCESS");
}
}
});
但问题是在代码中的onComplete方法完全不叫。 它甚至没有显示故障情况。 可能是什么问题呢? 由于用户未订阅的话题,我不能够发送推送通知。 这里有更多详细信息...
清单文件:我在清单文件的应用程序标记添加。
<service
android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
摇篮应用程序:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-crash:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.3.0'
}
apply plugin: 'com.google.gms.google-services'
摇篮项目:
buildscript {
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.0.1'
}
}
编辑:
我已经检查类似下面的话题订阅,使用邮递员
https://iid.googleapis.com/iid/info/xxxxxxxxxxxxxxxxx_V7dnQnfaT7f8cV-aNdDqrqyIJdI-fbnai0ec1Dyjm0uoJS0i1mxMfemE0iObR0j0f4mN_4Jyn-vSY4BTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?details=true
Authorization: key=xxxxxx //server key
method: GET
RESULT:
{
"applicationVersion": "109",
"connectDate": "2018-08-23",
"attestStatus": "NOT_ROOTED",
"application": "in.xxx.xxxxxxx",
"scope": "*",
"authorizedEntity": "45xxxxxxxxx8",
"connectionType": "MOBILE",
"appSigner": "e9a7xxxxxxxxx29fa0105d0xxxxxxxx33cc",
"platform": "ANDROID"
}
上述结果并没有显示任何主题。