Я пытаюсь создать службу уведомлений, используя службу сообщений Firebase. Проблема в том, что когда я нажимаю на уведомление, это приводит меня к правильному намерению, но заголовок панели приложения не обновляется должным образом. Я передаю имя пользователя в намерении, но в getExtra () намерения он возвращает ноль. Я получаю правильный идентификатор пользователя, но не получаю правильное имя. Мой код для построителя уведомлений выглядит следующим образом:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.chitchat_icon)
.setContentTitle(notification_title)
.setAutoCancel(true)
.setContentText(notification_message);
Intent resultIntent = new Intent(click_action);
resultIntent.putExtra("user_id", user_id);
resultIntent.putExtra("user_name",user_name);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntentWithParentStack(resultIntent);
stackBuilder.addParentStack(MainActivity.class);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
Я получаю Intent Extra и задаю его в качестве заголовка для панели действий:
//change in postion
mChatUser = getIntent().getStringExtra("user_id");
String userName = getIntent().getStringExtra("user_name");
...
mTitleView.setText(userName);
Моя функция firebase js для генерации уведомлениявыглядит так:
const fromUser = admin.database().ref(`/message_notifications/${user_id}/${notification_id}`).once('value');
return fromUser.then(fromUserResult => {
const from_user_id = fromUserResult.val().from;
const message = fromUserResult.val().body;
console.log('You have new notification from : ', from_user_id);
const userQuery = admin.database().ref(`/Users/${from_user_id}/name`).once('value');
return userQuery.then(userResult => {
const userName = userResult.val();
const deviceToken = admin.database().ref('/Users/'+ user_id +'/device_token').once('value');
return deviceToken.then(result => {
const token_id = result.val();
const payload = {
notification: {
title: userName,
body: message,
icon: "default",
click_action : "com.example.chitchat_TARGET_MESSAGE_NOTIFICATION"
},
data : {
user_id : from_user_id,
user_name: userName
}
};
}
Может кто-нибудь помочь мне, как решить эту проблему? Не могу найти проблему. Спасибо.
Обновление:
Я также хочу поделиться, что он работает нормально, если есть два разных устройства, но если я вхожу в систему и отправляю уведомление о выходе из системы и получаю уведомление о немневозможно получить имя пользователя.
![enter image description here](https://i.stack.imgur.com/rlFQ5.jpg)