2016-12-29 9 views
1

私はfirebaseを使用してチャットアプリを構築しています。新しいメッセージを受信したときにユーザーに通知しようとしています。私の問題はthisです。ビルダーでこれを適用することはできません

reference1.addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     Map map = dataSnapshot.getValue(Map.class); 
     String message = map.get("message").toString(); 
     String userName = map.get("user").toString(); 
//If i am the sender 
     if(userName.equals(UserDetails.username)){ 
      addMessageBox("You:-\n" + message, 1); 
     } 
     else { 
//if somebody else send a message 
       addMessageBox(UserDetails.chatWith + ":-\n" + message, 2); 

      NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
          .setSmallIcon(R.drawable.hello) 
          .setContentTitle("My notification") 
          .setContentText("Hello World!"); 



     } 
    } 

任意のヒント:私はここにbuilder(content.context) in builder cannot be applied to (anonymous com......)

が私のコードであるというエラーを取得していますか?

編集

以下の回答で述べたような問題は、この活動をChildEventListenerを意味していないので、私は「これは」を参照できるように、サイドChildEventListenerをメソッドを作成する必要がありましたということですそれは私がそれがほしいと思ったところでそれを呼びました

+1

使用 'MainActivity.this'内contextを使用するか、任意の名前、あなたの活動は –

+0

エラーがなくなっているが、いずれも受信することはできません通知 – mahmoud

答えて

2

new ChildEventListener()を指します。

たとえば、アクティビティであるコンテキストが必要です。

だから、どちらかYourActivity.this、または

final Context context = this; 
reference1.addChildEventListener(new ChildEventListener() { 
    @Override 
    ... 

を使用して、イベントリスナー

+0

エラーはなくなりましたが、通知を受け取っていません。 – mahmoud

+1

あなたに何を伝えるべきか分かりません。あなたの質問は、コードをコンパイルすることに関するものだけでした。 –

+0

あなたはビルダーを作成しました。あなたの質問の何も通知を表示するつもりはありません –

関連する問題