Dựa trên tài liệu, không có cách nào để nhận được từ GCM notification_key
của số notification_key_name
hiện có. Nếu bạn nghĩ về điều đó, có nghĩa là cố gắng tạo một notification_key
mới cho số notification_key_name
hiện có sẽ cung cấp cho bạn một lỗi, vì nếu không phải vậy, bạn có thể vô tình ghi đè ID đăng ký của notification_key
hiện tại nếu bạn xảy ra để cung cấp một số hiện tại notification_key_name
do nhầm lẫn.
Bạn đang so sánh điều này để đăng ký thiết bị với GCM nhiều lần, mỗi lần nhận cùng một ID đăng ký nhưng không phải là tình huống tương tự. Khi bạn đăng ký thiết bị với GCM, GCM có cách xác định thiết bị và biết rằng thiết bị đã được đăng ký và trả lại cùng một ID đăng ký. Với thông báo người dùng, nó chỉ có notification_key_name
mà bạn đã cung cấp và không có gì ngăn bạn sử dụng cùng một số notification_key_name
cho nhiều người dùng. Đó là, có điều gì đó ngăn cản bạn - lỗi bạn gặp khi cố gắng tạo một notification_key
với một số đã sử dụng trước đây notification_key_name
.
Cách dễ dàng để khắc phục sự cố của bạn là xử lý notification_key_name
làm số nhận dạng duy nhất được tạo bởi máy chủ của bạn. Nếu bạn không có notification_key
cho một người dùng nhất định (vì đó là người dùng mới hoặc do bạn không lưu trữ được notification_key
trước đó bạn đã nhận được từ Google), bạn tạo notification_key_name
duy nhất mới và sử dụng nó để tạo notification_key
mới. Bạn không cần phải quan tâm đến số notification_key
cũ mà bạn không thể lưu trữ.
Cuối cùng, bạn lưu trữ cả số notification_key
và notification_key_name
trong bảng chứa id người dùng.
Nó làm cho tinh thần để nhận được một lỗi, nhưng nó không có ý nghĩa mà bạn thì không thể lấy lại một họ đã biết về ... Nếu họ có thể xác định một bản sao, họ có thể cung cấp một giao diện để trả lại ...Như bạn đề xuất tạo 'notification_key_name' do máy chủ của tôi tạo ra, điều đó có nghĩa là' notification_key_name' được tạo sẽ không phải là một-một với tên người dùng của ứng dụng, điều này làm cho mọi thứ trở nên phức tạp một cách không cần thiết nếu tôi chỉ có thể truy xuất 'notification_key' .. – xbakesx
@xbakesx Notification_key_name của bạn sẽ vẫn là một đối một với tên người dùng của ứng dụng. Nếu bạn tạo một notification_key_name để có được một notification_key từ Google, và không tồn tại notification_key, bạn sẽ không tồn tại notfiication_key_name. Sau đó, bạn sẽ tạo một notification_key_name mới (cho một tên người dùng đã cho) để lấy một notification_key mới và đó sẽ là notification_key_name duy nhất được liên kết với tên người dùng trong DB của bạn. – Eran