首页 > 解决方案 > Firebase 按摩

问题描述

我正在尝试在 andorid 中处理来自 FCM(Firebase Cloud Messaging)的消息;

这是我的代码

 FirebaseMessaging.getInstance().getToken()
                .addOnCompleteListener(new OnCompleteListener<String>() {
                    @Override
                    public void onComplete(@NonNull Task<String> task) {
                        if (!task.isSuccessful()) {
                            Log.w("TAG", "Fetching FCM registration token failed", task.getException());
                            return;
                        }

                        // Get new FCM registration token
                        String token = task.getResult();

                        // Log and toast
                        Log.d("TAG", token);
                        Toast.makeText(StartActivity.this, token, Toast.LENGTH_SHORT).show();
                    }
                });
        FirebaseMessaging.getInstance().setAutoInitEnabled(true);

我已经从 firebase 控制台发送了消息。

但我想处理这些消息。所以我做了这个文档说https://firebase.google.com/docs/cloud-messaging/android/receive

这是 manifest.xml

  <service
            android:name="com.google.firebase.messaging.FirebaseMessagingService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
            
            <meta-data
                android:name="com.google.firebase.messaging.default_notification_icon"
                android:resource="@android:drawable/ic_notification_overlay" />
        
            <meta-data
                android:name="com.google.firebase.messaging.default_notification_color"
                android:resource="@color/white" />

            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>

        </service>

这是我的 FirebaseMessagingService 扩展类

public class MessageService extends FirebaseMessagingService {

    private static final String TAG = "MessageService";


    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Toast.makeText(this, "Got it", Toast.LENGTH_SHORT).show();
    }
}

但我不知道如何将这个 FirebaseMessagingService 类重新注册到 Firebase 消息传递

标签: javaandroidfirebasefirebase-cloud-messaging

解决方案


您不需要注册消息服务的类,您需要注册应用程序本身。它应该是项目中的 google-services.json 配置文件,其中包含有关 firebase 控制台中项目的所有必要信息。它将在您的应用程序和在 Firebase 控制台中创建的项目之间建立某种联系。

获取此配置文件的方法有多种:

  1. 通过 Firebase 控制台生成 google-services.json https://firebase.google.com/docs/cloud-messaging/android/client#register_your_app_with_firebase
  2. 通过 Android Studio 生成它。工具 -> Firebase -> 云消息传递 -> 完成向导“设置 Firebase 云消息传递”

推荐阅读