Я просто хочу получить доступ к тем пользовательским данным, которые записаны внутри дополнительной опции в фоне
В моей базе данных есть категории и страницы, связанные с ними, такие как Sports to Sports.java, Politics to Politics.java
Теперь, чтобы показать уведомление, я сделал это:
я просто хочу, чтобы при уведомлении о клике приложение считывало категорию и индекс и в соответствии с этим предназначалось для этой страницы .
public void setindex(String index,String category){
FirebaseUser current_user = FirebaseAuth.getInstance().getCurrentUser();
String uid = current_user.getUid();
DatabaseReference mi = FirebaseDatabase.getInstance().getReference().child("Users").child(uid).child("Last").child(category);
mi.setValue(index).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
}
}
});}
и как получить эти заголовок, сообщение, категорию, индекс на клике уведомление
private void showNotification(String title, String message,String category,String index) {
setindex(index,catgory);
switch (category){
case "Sports":Intent intent=new Intent(getApplicationContext(),Sports.class);break;
case "Politics":intent=new Intent(getApplicationContext(),Politics.class);break;
default:break;
}
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder b = new NotificationCompat.Builder(getApplicationContext());
b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(message)
.setContentIntent(contentIntent);
NotificationManager notificationManager = (NotificationManager)getBaseContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1,b.build());
}
Я также создал файл FirebaseMessagingService.java
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
showNotification(remoteMessage.getNotification());
}
private void showNotification(RemoteMessage.Notification notification) {
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,a,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder builder=new NotificationCompat.Builder(this).setSmallIcon(R.mipmap.ic_launcher_foreground).setContentTitle(notification.getTitle()).setContentText(notification.getBody()).setAutoCancel(true).setContentIntent(pendingIntent);
NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0,builder.build());
}
, а также FirebaseInstaceIdServcie.java
public class MyFirebaseIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}