FCM tương thích ngược với GCM. Các bước thiết lập FCM trên AWS giống với quy trình thiết lập GCM và (ít nhất là tại thời điểm hiện tại) FCM hoạt động minh bạch với GCM và SNS đối với cấu hình phía máy chủ.
Tuy nhiên , nếu bạn đang gửi data
trọng tải đến thiết bị Android, chúng sẽ không được xử lý trừ khi bạn triển khai dịch vụ phía máy khách mở rộng FirebaseMessagingService
. Trình tạo thông báo JSON mặc định trong bảng điều khiển AWS sẽ gửi data
thông báo, thông báo này sẽ bị ứng dụng của bạn bỏ qua trừ khi dịch vụ nói trên được triển khai. Để giải quyết vấn đề này cho thử nghiệm ban đầu, bạn có thể cung cấp notification
tải trọng tùy chỉnh mà thiết bị của bạn sẽ nhận được (miễn là ứng dụng của bạn không ở nền trước)
Có hướng dẫn di chuyển GCM-FCM cung cấp bởi Google tuy nhiên những thay đổi bạn cần phải thực hiện chủ yếu là ở phía bên App.
Các bước bạn cần làm theo để kiểm tra GCM / FCM trên ứng dụng của mình với SNS là:
- Tạo Ứng dụng nền tảng trong SNS , chọn Google Cloud Messaging (GCM) làm Nền tảng thông báo đẩy và cung cấp khóa API máy chủ của bạn trong trường khóa API .
- Chọn Ứng dụng nền tảng và nhấp vào nút Tạo điểm cuối nền tảng .
- Cung cấp InstanceID ( Mã thông báo thiết bị ) do ứng dụng của bạn tạo. Bạn phải mở rộng
FirebaseInstanceIDService
và ghi đè onTokenRefresh
phương thức để xem điều này trong Ứng dụng Android của mình. Khi bạn đã thực hiện xong việc này , hãy gỡ cài đặt và cài đặt lại ứng dụng của bạn và mã thông báo của bạn sẽ được in vào Bảng điều khiển gỡ lỗi trong Android Studio trong lần khởi động đầu tiên.
- Nhấp vào nút Thêm điểm cuối .
- Nhấp vào liên kết ARN cho ứng dụng nền tảng của bạn.
- Chọn Điểm cuối mới được tạo cho thiết bị của bạn và nhấp vào nút Xuất bản lên điểm cuối .
- Chọn Định dạng thông báo JSON và nhấp vào nút tạo thông báo JSON .
- Nhập tin nhắn kiểm tra và nhấp vào JSON Tạo nút
- Bây giờ đến phần "gotcha".
Thông báo được tạo bởi SNS sẽ có dạng:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Như chúng tôi đã đề cập trước đó, data
tải trọng sẽ bị bỏ qua nếu không có dịch vụ nhận chúng được triển khai. Chúng tôi muốn kiểm tra mà không viết quá nhiều mã, vì vậy thay vào đó chúng tôi nên gửi một notification
tải trọng. Để thực hiện việc này, chỉ cần thay đổi thông báo JSON để đọc:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Khi bạn đã thực hiện xong việc này, hãy đảm bảo rằng ứng dụng của bạn không chạy trên thiết bị và nhấn nút Xuất bản tin nhắn . Bây giờ bạn sẽ thấy một thông báo bật lên trên thiết bị của mình.
Tất nhiên, bạn có thể thực hiện tất cả những điều này theo chương trình thông qua Amazon SNS API, tuy nhiên, tất cả các ví dụ dường như đều sử dụng data
trọng tải, vì vậy bạn cần ghi nhớ điều đó và tạo tải trọng phù hợp với trường hợp sử dụng của mình.