Firebase Push Notification: Spring boot ошибочно отправлять в разные пакеты по теме - PullRequest
0 голосов
/ 15 октября 2018

Я настроил свое приложение ios в prod и uat.В результате, идентификатор пакета отличается и отличается push-сертификатом.

Я использую firebase для push-уведомлений, и в моем iOS я настраиваю свой plist следующим образом.

func setUpFirebase() {
    let filePath = Bundle.main.path(forResource: FIREBASE_PLIST, ofType: "plist")!
    let options = FirebaseOptions(contentsOfFile: filePath)
    FirebaseApp.configure(options: options!)
}

Я также подписываюсь на такую ​​тему.

Messaging.messaging().subscribe(toTopic: "all")

Из моего бэкэнда я отправляю уведомление вот так.

NotificationService.sendNotificationToTopic(notification, "all");

Это реализация.Я уже использую RESTRICTED_PACKAGE_NAME , но он не работает и отправляется всем пакетам.Как мне быть?

public static void sendNotificationToTopic(Notification notification, String topic) throws JSONException, ClientProtocolException, IOException{
    JSONObject notificationObject = new JSONObject();
    notificationObject.put(Notification.TITLE, notification.getTitle());
    notificationObject.put(Notification.TEXT, notification.getText());
    notificationObject.put(Notification.ICON, notification.getIcon());
    notificationObject.put(Notification.CLICK_ACTION, "FCM_PLUGIN_ACTIVITY");

    JSONObject notificationData = new JSONObject();
    notificationData.put(Notification.PAGE, notification.getPage()!=null?notification.getPage():"");
    if (notification.getPageParam()!=null){
            notificationData.put(Notification.PAGE_PARAM, notification.getPageParam());
    }

    JSONObject sendObject = new JSONObject();
    sendObject.put(Notification.DATA, notificationData);
    sendObject.put(Notification.NOTIFICATION, notificationObject);
    sendObject.put(Notification.TO, "/topics/" + topic);
    sendObject.put(Notification.RESTRICTED_PACKAGE_NAME, PACKAGE_NAME);
    sendObject.put(Notification.PRIORITY, Notification.HIGH_PRIORITY);

    HttpClient httpClient = HttpClientBuilder.create().build();

    HttpPost httpPost = new HttpPost("https://fcm.googleapis.com/fcm/send");
    httpPost.setHeader("Content-Type", "application/json");
    httpPost.setHeader("Authorization", "key=" + FCM_KEY);//todo for pro
    HttpEntity entity = new StringEntity(sendObject.toString(),"UTF-8");
    httpPost.setEntity(entity);

    HttpResponse httpResponse = httpClient.execute(httpPost);
    HttpEntity responseEntity = httpResponse.getEntity();   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...