2016-07-18 4 views
8

Я использую Firebase Cloud Messaging (FCM) и согласно сокращенному коду ниже каждый раз, когда на клиентском устройстве генерируется новый токен ... Я отправляю этот новый TOKEN в свою базу данных SERVER (Cloud), где я ее сохраняю, чтобы иметь возможность отправлять в будущем Push Notification с сервера на устройство с использованием API CFM.Firebase Cloud Messaging - Как проверить токены?

//public class CFMInstanceIDService extends FirebaseInstanceIdService ... 

    public void onTokenRefresh() { 
     ... 
     String cfmToken = FirebaseInstanceId.getInstance().getToken();   
     ...  
     sendRegistrationToServer(customerGuid, cfmToken); 
    } 

Посредством этого у меня есть на сервере список ВСЕХ (кратных) Устройств, в которых Клиент вошел в систему. (Планшет, телефон, iPhone, Android и т. Д.)

Есть ли способ проверить/подтвердить токен в любое время?

Я хотел бы знать/убедиться, что все токены, которые я связал с клиентом, принадлежат реальным устройствам. Я не хочу отправлять Push Notifications не существующим токенам.

не

ответ

7

Нет такой вещи, существует, единственная информация, которую вы можете получить из маркеров является приложение информации и не Wether действительно или нет

https://developers.google.com/instance-id/reference/server#get_information_about_app_instances

, что вы должны делать наблюдает за ответ, когда вы перейти отправить PUSH в аут, и если ключи не действительны ответ покажет вам, что ключи должны быть удалены с NotRegistered

https://firebase.google.com/docs/cloud-messaging/server

+1

При использовании конечной точки идентификатора экземпляра вы можете проверить информацию о токере, и ответ будет указывать (не конкретно), что токен недействителен, либо потому, что нет информации для токена, либо если токен недействителен формат. –

2

Там нет ж ay, чтобы проверить, действительно ли токен действителен до отправки нисходящего сообщения. Что вам нужно сделать, так это проверить ответ после отправки сообщения, а затем проверить, содержит ли ответ какую-либо ошибку.

Например, если сервер возвращает код http: 200 + error:NotRegistered, это означает, что существующий регистрационный токен может перестать быть действительным.

В разделе «Downstream message error response codes of FGC» вы найдете документально подтвержденный ответ на любой возможный статус.

3

Вот пример локон запрос, который показывает, как проверить маркер, фактически без необходимости отправить сообщение:

curl -H "Content-Type: application/json" -H "Authorization: key=$FCM_API_KEY" https://fcm.googleapis.com/fcm/send -d '{"registration_ids":["$FCMTOKEN"]}' 

Пример ошибочный ответ:

{"multicast_id":7452350602151058088,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]} 

Пример правильный ответ:

{"multicast_id":9133870199216310277,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1502817580237626%f590ddc2f9fd7ecd"}]} 

Я получил этот ответ от команды поддержки firebase от Google.

Смежные вопросы