1
私のアンドロイドアプリケーションでは、アプリケーションがアクティブでなくてもfirebaseデータベースのchildEventListenerを実装しようとしています。 firebaseデシベル特定の子は、それがユーザーに通知する必要があり、新たなエントリを持っている時はいつでも は私が私のその後android-firebase childEventListener in service
<service android:name=".ChildEventListener"/>
として、マニフェストファイルでサービスを宣言したので、今まで私は、これで
を行っている ..意味します
public class ChildEventListener extends Service {
FirebaseAuth auth;
NotificationCompat.Builder builder;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
retrivemsg();
return START_STICKY;
}
public void retrivemsg()
{
DatabaseReference mdb= FirebaseDatabase.getInstance().getReference("messages/"+auth.getCurrentUser().getUid());
builder=new NotificationCompat.Builder(this,"onchildadded");
mdb.addChildEventListener(new com.google.firebase.database.ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String msg=dataSnapshot.child("msg").getKey();
builder.setSmallIcon(R.drawable.send);
builder.setContentTitle("child added");
builder.setContentText(msg);
NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(1,builder.build());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
を次のようにChildEventListenerクラスはありませんが、私は試してみましたが、ない運...でもねっ子どもが追加されました。私は通知を受けていません....アプリが前景にある場合でも...
サービスが開始されていますか?通知の代わりに、ログを使用して最初に問題のある場所を確認することもできます。サービス、Firebaseリスナ、通知のどちらにあるのでしょうか? – merterpam
ohhありがとうございました....私の間違い...私はサービスを開始するのを忘れました –
しかし、今問題は、私はアプリがアクティブなときに通知を得ています...サービスはバックグラウンドで働いていません...そしてまた...通知はまた、最初のエントリだけを取得しています...もし私が1つのアイテムを追加したら、通知を出します。私はそれをスワイプして通知を取り消して、もう一度項目を追加して、新しい通知をしないとします。なぜ起こったの? –