2017-05-20 16 views
0

firebaseの特定のユーザグループにプッシュ通知を送信したいとします。たとえば、ペットフィールドのアプリのサインアップフォームで、私は犬を持っているユーザーにプッシュ通知を送信したいと思います。 誰でもお勧めします。私はどのようにfirebaseでこれを行うことができますか?ファイアベース内の特定のユーザグループにプッシュ通知を送信する方法

答えて

0

は、このコードを試してみてください。

public class NotifyListAdapter extends BaseAdapter implements Constants { 

     private Activity activity; 
     private LayoutInflater inflater; 
     private List<Notify> notifyList; 

     ImageLoader imageLoader = App.getInstance().getImageLoader(); 

     public NotifyListAdapter(Activity activity, List<Notify> notifyList) { 

      this.activity = activity; 
      this.notifyList = notifyList; 
     } 

     @Override 
     public int getCount() { 

      return notifyList.size(); 
     } 

     @Override 
     public Object getItem(int location) { 

      return notifyList.get(location); 
     } 

     @Override 
     public long getItemId(int position) { 

      return position; 
     } 

     static class ViewHolder { 

      public TextView notifyTitle; 
      public TextView notifyTimeAgo; 
      public CircularImageView notifyAuthor; 
      public CircularImageView notifyType; 

     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      ViewHolder viewHolder = null; 

      if (inflater == null) { 

       inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      } 

      if (convertView == null) { 

       convertView = inflater.inflate(R.layout.notify_list_row, null); 

       viewHolder = new ViewHolder(); 

       viewHolder.notifyAuthor = (CircularImageView) convertView.findViewById(R.id.notifyAuthor); 
       viewHolder.notifyType = (CircularImageView) convertView.findViewById(R.id.notifyType); 
       viewHolder.notifyTitle = (TextView) convertView.findViewById(R.id.notifyTitle); 
       viewHolder.notifyTimeAgo = (TextView) convertView.findViewById(R.id.notifyTimeAgo); 

       convertView.setTag(viewHolder); 

      } else { 

       viewHolder = (ViewHolder) convertView.getTag(); 
      } 

      if (imageLoader == null) { 

       imageLoader = App.getInstance().getImageLoader(); 
      } 

      viewHolder.notifyTitle.setTag(position); 
      viewHolder.notifyTimeAgo.setTag(position); 
      viewHolder.notifyAuthor.setTag(position); 
      viewHolder.notifyType.setTag(position); 
      viewHolder.notifyAuthor.setTag(R.id.notifyAuthor, viewHolder); 

      final Notify notify = notifyList.get(position); 

      viewHolder.notifyType.setVisibility(View.GONE); 

      if (notify.getType() == NOTIFY_TYPE_LIKE) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_like)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_like); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_like); 

      } else if (notify.getType() == NOTIFY_TYPE_COMMENT) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_comment)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_comment); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_comment); 

      } else if (notify.getType() == NOTIFY_TYPE_COMMENT_REPLY) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_comment_reply)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_reply); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_reply); 

      } else { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_follow_you)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_follower); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_follower); 
      } 

      viewHolder.notifyTimeAgo.setText(notify.getTimeAgo()); 

      return convertView; 
     } 
    } 
0

あなたは通常、そのためにトピックメッセージングを使用すると思います。ユーザーはトピックpet_type_dogを購読します。 Androidでは、これは次のようになります。

FirebaseMessaging.getInstance().subscribeToTopic("pet_type_dog"); 

次にあなたが犬に等しいペット型を持つすべてのユーザーにメッセージを送信します。 JavaScriptの管理SDKでは次のようになりますよう:

admin.messaging().sendToTopic("pet_type_dog", { 
    notification: { 
    title: "Monday message for dog lovers", 
    body: "Today's special dog is Dee Dee from SF." 
    } 
}).then(function(response) { 
    // See the MessagingTopicResponse reference documentation for the 
    // contents of response. 
    console.log("Successfully sent message:", response); 
    }) 
    .catch(function(error) { 
    console.log("Error sending message:", error); 
    }) 
+0

私は血液関連のAndroidアプリを作るつもりです......ユーザーは彼の血液型と彼の位置を記入してサインアップします。 firebaseデータベースにリクエスト部分もあります。ユーザが特定の場所に血統のある血液群を要求すると、その場所にその特定の血液群を持っているユーザにプッシュ通知が自動的に送信されます。 firebaseの雲の機能とその通知をプッシュしてください。私はどのようにそれを行うことができますか? –

+0

私の答えは、アプローチとそれに必要なコードのほとんどを示しています。解決策を試して、問題のある部分を教えてください。 –

0

まず、あなたはペットは犬を含んでいます分析で観客を指定する必要があります。

enter image description here このスクリーンショットは私

Firebaseクラウドメッセージング(FCM)の例で指定したユーザーのグループにプッシュ通知を送信することができ、ターゲットの3つの異なる種類を提供しています。ターゲットの3つのタイプは、ユーザーセグメント、トピック、および単一デバイスです。

enter image description here このスクリーンショットは、ユーザー・セグメントでは鉱山

の例では、プッシュ通知を送信するためのアプリを選択することができます。フィルタルールを追加するには、「AND」をクリックします。

聴衆には、ペットが犬を持っているユーザーにプッシュ通知を送信できます。

関連する問題