Я работаю над уведомлением, но после отправки A уведомление B не может получить уведомление. Я добавил Toast для проверки, и я вижу, что отправка прошла успешно, но похоже, что onMessageReceived не вызывается. Не могли бы вы помочь, где я ошибаюсь? Спасибо!!
Манифест
<service android:name=".notifications.FirebaseService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_SERVICE"/>
</intent-filter>
</service>
<service
android:name=".notifications.FirebaseMessaging"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Это onMessageReceived (). Я не мог видеть "сообщение получено"
public class FirebaseMessaging extends FirebaseMessagingService
{
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
//get current user from share preference
SharedPreferences sp = getSharedPreferences("SP_USER", MODE_PRIVATE);
String savedCurrentUser = sp.getString("Current_USER", "None");
Toast.makeText(this, "message received", Toast.LENGTH_SHORT).show();
String sent = remoteMessage.getData().get("sent");
String user = remoteMessage.getData().get("user");
FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
if(fUser != null && sent.equals(fUser.getUid())) {
if(!savedCurrentUser.equals(user)){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
sendOAndAboveNotification(remoteMessage);
}else {
sendNormalNotification(remoteMessage);
}
}
}
}
Здесь я отправляю уведомление и вижу сообщение "Ответ"
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds: dataSnapshot.getChildren()) {
Token token = ds.getValue(Token.class);
Data data = new Data(uid,name+":"+message,"New Message",destinationUid,R.drawable.icon_byb_final7);
Sender sender = new Sender(data, token.getToken());
apiService.sendNotification(sender)
.enqueue(new Callback<Response>() {
@Override
public void onResponse(Call<Response> call, retrofit2.Response<Response> response) {
Toast.makeText(MessageActivity.this,"Response"+response.message(),Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
}
});
}
}