Я делаю приложение для чата.Я использую этот код для обнаружения новых сообщений (в базе данных Firebase) и затем уведомляю пользователей:
package com.tungvuong.dangeralarm;
import android.app.IntentService;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import com.firebase.client.Firebase;
import com.google.firebase.FirebaseError;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import static com.facebook.login.widget.ProfilePictureView.TAG;
public class receive extends IntentService {
public receive() {
super("receive");
}
@Override
protected void onHandleIntent(Intent intent) {
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String tinmoi = dataSnapshot.child("messageText").getValue(String.class);
Intent intent = new Intent(receive.this, chat.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(receive.this, 0, intent, 0);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(receive.this, "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.emergency_icon)
.setContentTitle("Có tin mới!")
.setContentText(tinmoi)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) receive.this.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Log errors
}
};
rootRef.addValueEventListener(valueEventListener);
}
}
Но когда я проверяю его, загружая базу данных из консоли Firebase, то добавляю новую запись в файл json, используяNotepad ++, а затем, наконец, я загрузил его на консоль (у меня нет 2 телефонов, чтобы проверить это, поэтому я должен изменить файл json), приложение не уведомляло пользователей или что-либо.
Вот моиБаза данных Firebase:
Моя база данных Firebase

Как вы видите, MessageText - это то, что слушательслушает.Это приложение представляет собой приложение для группового чата, и оно позволяет пользователям входить только анонимно.