2016-09-01 23 views
15

Tôi đang đăng ký một chủ đề là phiên bản ứng dụng của tôi trong Android.Phủ định trong điều kiện khi gửi tin nhắn FCM

FirebaseMessaging.getInstance().subscribeToTopic(APP_VERSION); 

Bây giờ mỗi khi tôi khởi chạy bản cập nhật, tôi phải hủy đăng ký phiên bản cũ và đăng ký phiên bản mới để tôi chỉ gửi thông báo cập nhật người dùng cũ. Thay vào đó, nó sẽ là tuyệt vời nếu tôi chỉ phủ nhận một phiên bản.

"condition": "!'2.1.1' in topics", 

Điều gì đó như thế này tồn tại trong FCM?

Trả lời

4

Bạn chỉ có thể nhắm mục tiêu người dùng dựa trên việc họ đã đăng ký một chủ đề hay không, cho dù họ là không phải là đã đăng ký.

Vì khớp thẻ ký tự đại diện chỉ có trong Thông báo Firebase (mà API công khai chưa tồn tại) và bảng điều khiển chỉ có thể gửi thông báo (thực sự được hệ thống xử lý nếu ứng dụng không ở nền trước), các tùy chọn của bạn sẽ bị hạn chế để làm việc xung quanh.

Một vài tôi có thể nghĩ:

  1. theo dõi các phiên bản của ứng dụng mà mỗi ID người dùng/thiết bị đã được cài đặt trong một Map<Token, Version> như cấu trúc. Bạn có thể sử dụng Cơ sở dữ liệu Firebase cho điều đó.

  2. liệt kê tất cả các phiên bản cũ và nhắm mục tiêu những phiên bản có thông báo.

  3. gửi thông báo dữ liệu với thông báo phát hành mới cho mọi người (thông qua API nhắn tin trên đám mây) và sau đó tắt hiển thị thông báo trong onMessageReceived() nếu họ đã có phiên bản mới nhất.

Hmm ... trong hindsight # 3 có vẻ như một giải pháp khá sạch. Bạn đang gửi quá mức nhưng hệ thống có thể xử lý điều đó và miễn là tần suất không quá cao, nhiều khả năng người dùng của bạn sẽ không bị ảnh hưởng quá nhiều.

+0

Tôi đã đi tiếp với giải pháp số 3 như đã đề cập trong phần bình luận của câu trả lời khác. – mjosh

2

Ngoài chủ đề hộp không hỗ trợ thao tác như "những người chưa đăng ký xxx".

Tuy nhiên đối với việc sử dụng của bạn (gửi thông báo cho người dùng chưa cập nhật), tôi khuyên bạn nên sử dụng Thông báo Firebase (không nhầm lẫn với FCM, nhắn tin trên đám mây firebase), bạn có thể tìm tài liệu here.

Điểm mấu chốt là trong bảng điều khiển firebase, bạn có thể lọc các mục tiêu theo phiên bản ứng dụng. Xem ảnh chụp màn hình bên dưới của số đó particular part of the doc. Tôi đã thử nghiệm nó nhiều lần trong sản xuất bản thân mình và nó hoạt động greats. enter image description here

+0

Vấn đề duy nhất tôi gặp với bảng điều khiển Firebase là các thông báo được gửi đến khay hệ thống thiết bị khi ứng dụng ở chế độ nền và không có cách nào để tùy chỉnh nó. – mjosh

+0

Tôi hiểu, bạn có thể tùy chỉnh tiêu đề và mô tả (và tôi nghĩ rằng âm thanh) nhưng đó là về nó thực sự. Tôi chắc rằng họ sẽ thêm nhiều tùy chỉnh hơn trong các tháng tiếp theo, bạn quan tâm đến điều gì? – Sistr

+0

Biểu tượng ứng dụng và Mục đích đang chờ xử lý. Tôi muốn người dùng được đưa thẳng đến Cửa hàng Play thay vì ứng dụng của tôi. Tôi phát hiện ra một workaround thay vì phủ định tôi sẽ thay đổi số phiên bản liên tục và so sánh với số phiên bản tôi gửi thông qua FCM. – mjosh

Các vấn đề liên quan