java - 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 消息传递
解决方案
您不需要注册消息服务的类,您需要注册应用程序本身。它应该是项目中的 google-services.json 配置文件,其中包含有关 firebase 控制台中项目的所有必要信息。它将在您的应用程序和在 Firebase 控制台中创建的项目之间建立某种联系。
获取此配置文件的方法有多种:
- 通过 Firebase 控制台生成 google-services.json https://firebase.google.com/docs/cloud-messaging/android/client#register_your_app_with_firebase
- 通过 Android Studio 生成它。工具 -> Firebase -> 云消息传递 -> 完成向导“设置 Firebase 云消息传递”
推荐阅读
- typescript - IONIC上的路线
- rabbitmq - 使用spring-amqp库异步发送消息时如何使用rabbit mq处理网络超时异常
- r - R定义没有观察的水平
- java - 在android中将字符串布局作为表格
- ruby-on-rails - 在 Rails 中将数据库更改为 utf8
- javascript - javascript:获取 number.epsilon 而不是 0
- maven - 如何将 Nexus 凭据传递到 Azure DevOps 服务器
- powershell - 使用 PowerShell 远程执行软件中心包
- hive - distcp 复制配置单元表事务
- karate - 空手道得到响应是给 xpath not found 错误