Как сохранить другой регистрационный токен для одного и того же пользователя? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь использовать сервисы Firebase FCM для отправки уведомлений пользователям.когда пользователь входит в систему, я сохраняю его token_id в базе данных Firestore.

это то, как я сохраняю token_id.

String token_id = FirebaseInstanceId.getInstance().getToken();
   Log.i("token_id",token_id);
   Map<String,Object>  tokenMap = new HashMap<>();
   tokenMap.put("token_id",token_id);
   mFireStore.collection("Users").document(current_id).update(tokenMap).addOnSuccessListener(new OnSuccessListener<Void>() {
              @Override
              public void onSuccess(Void aVoid) {
                 Toast.makeText(LoginActivity.this, "Signed in Successfully", Toast.LENGTH_SHORT).show();
                 startActivity(new Intent(LoginActivity.this,AdminActivity.class));
                 finish();
         }
  });

, но когда я вхожу с тем же пользователем на другом устройстве, предыдущий token_id получает обновление с новым ..

есть ли способ, которым я могу создать список token_ids, чтобы я мог использовать его в функции node.js

1 Ответ

0 голосов
/ 17 мая 2018

Одна вещь, которую вы могли бы сделать, это изменить схему Firestore на что-то вроде этого:

/users (collection)
  /userId (document)
    /name (field)
    /otherStuff (fields)
    /pushTokens (collection)
      /deviceId (document)
        /token (field)

Таким образом, вы сможете разместить несколько токенов на пользователя. Вместо коллекции вы также можете использовать array.

Это было бы очень эффективно, если бы вы могли найти хороший идентификатор устройства для сопряжения токена. Раньше было значение ANDROID_ID, но если я правильно помню, использовать его больше не рекомендуется. Обсуждение того, как работать с группами устройств, немного широки, поэтому я бы посоветовал посмотреть на мой ответ здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...