FCM 未收到通知消息
Posted
技术标签:
【中文标题】FCM 未收到通知消息【英文标题】:FCM not receiving notification messages 【发布时间】:2018-07-20 13:40:17 【问题描述】:我检查了我的清单,检查了我的服务,检查了我的依赖项,检查了类变量,但我的设备上仍然没有通知。我正在使用我的电脑发送 Firebase 云消息,我应该在我的 android 手机上接收它们。但是,我的安卓手机没有收到通知。是的,当我发送消息时,我的安卓设备在后台。有谁知道我的问题是什么?
这里是源代码:
我的服务
public class FirebaseIDMessage extends FirebaseMessagingService
private static final String TAG = "FirebaseIDMessage";
@Override
public void onNewToken(String s)
super.onNewToken(s);
String token = s;
Log.d(TAG, "Registered token: = " + token);
sendRegistrationToServer(token);
private void sendRegistrationToServer(String token)
我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.messaging">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- Services -->
<service android:name=".FirebaseIDMessage"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<activity android:name=".MessagingActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的活动
public class MessagingActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_messaging);
【问题讨论】:
【参考方案1】:在您的清单文件中,您缺少 INSTANCE_ID_EVENT
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
这是使用 FirebaseInstanceIdService 扩展的类的意图过滤器
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService
public static final String REGISTRATION_TOKEN = "REG_TOKEN";
@Override
public void onTokenRefresh()
String token = FirebaseInstanceId.getInstance().getToken();
Log.e(REGISTRATION_TOKEN,token);
所以,清单服务最终会是这样的
<service android:name=".Utils.PushNotification.MyFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
【讨论】:
【参考方案2】:在日志上你会得到注册的令牌。仅当您收到该令牌时,您的所有设置。
转到 Firebase 控制台:https://console.firebase.google.com
选择你的项目 -> 从左侧菜单 -> 选择云消息 -> 新消息
输入您的消息,然后在目标中选择单个设备,然后复制粘贴您收到的令牌并在您的设备上检查此通知,这样我们可以确认您已正确设置所有通知相关代码。如果您仍然遇到任何问题,请告诉我,以便我可以分享一些示例。
【讨论】:
以上是关于FCM 未收到通知消息的主要内容,如果未能解决你的问题,请参考以下文章