像Instagram

时间:2018-01-04 07:14:24

标签: android firebase push-notification firebase-cloud-messaging

我已在我的应用中实施了FCM,并从应用中执行的操作获取通知。因此,如果用户喜欢某个帖子,我会收到类似"某人(姓名)喜欢你的通知。如果多个用户喜欢这个帖子,我会收到多个通知:User1喜欢你,User2喜欢你。

我想要一个通知,其中显示用户的用户名+喜欢你的其他用户的号码。如何在客户端处理此问题,或者我们是否必须从服务器端处理它。有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

Firebase云消息传递可让您实时向用户发送消息。我建议你从官方谷歌文档中读到它,然后实现它,这样当有人喜欢你的帖子时,你的服务器就能发送一条JSON消息来激活Firebase云消息传递。

有两种形式的通知:

  • 通知消息,有时被视为“显示消息”。 这些由FCM(firebase云消息传递)SDK处理 自动。
  • 数据消息,由客户端应用程序处理。

第一步:将FCM SDK API添加到您的项目中 enter image description here

第二步创建可以接收数据信息的服务

<service
    android:name=".MyFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

public class MyFirebaseMessagingService extends FirebaseMessagingService {
   private static final String TAG = "myTag";
   @Override
   public void onMessageReceived(RemoteMessage remoteMessage) {
 Log.d(TAG, "From: " + remoteMessage.getFrom());
 Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
    }
}

第三步:从该服务创建通知

NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.notification_icon)
    .setContentTitle("Someone liked your post")
    .setContentText("Accept this answer if it is useful!");

第四步:通过向您的Android应用发送JSON请求,并在服务器端处理任何“喜欢”:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", //this specefies the device
    "notification":{
      "title":"Someone liked your post",
      "body":"col"
    }
"data": {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
 "android":{
       "ttl":"86400s",
       "notification"{
         "click_action":"OPEN_ACTIVITY_1"
       }
     },
  }
}

有关我blog上的Firebase云消息传递的更多信息。