【问题标题】:FCM not receiving notification messagesFCM 未收到通知消息
【发布时间】: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);
    }
}

【问题讨论】:

    标签: android firebase firebase-cloud-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

      选择你的项目 -> 从左侧菜单 -> 选择云消息 -> 新消息

      输入您的消息,然后在目标中选择单个设备,然后复制粘贴您收到的令牌并在您的设备上检查此通知,这样我们可以确认您已正确设置所有通知相关代码。如果您仍然遇到任何问题,请告诉我,以便我可以分享一些示例。

      【讨论】:

        猜你喜欢
        • 2021-10-30
        • 2017-04-10
        • 2019-08-17
        • 1970-01-01
        • 2020-01-14
        • 2017-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多