Мне нужно сохранить токены FCM в базе данных Firebase для отправки уведомлений. Есть ли способ лучше? Сейчас делаю так:

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").push().setValue(token)

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

Не могли бы вы дать мне совет? Или, может быть, я смогу сделать это с помощью функций firebase, которые удалят дубликаты.

3
Ruslan Leshchenko 3 Янв 2018 в 14:48

2 ответа

Лучший ответ

Я решил эту проблему, использовав другой способ сохранения токенов, теперь токен сохраняется как ключ записи.

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").child(token).setValue(true)
8
Ruslan Leshchenko 3 Янв 2018 в 13:05

Я бы не советовал сохранять эту информацию в базе данных.

Учтите, что:

Регистрационный токен может измениться, когда:

  • Приложение удаляет идентификатор экземпляра
  • Приложение восстановлено на новом устройстве
  • Пользователь удаляет / переустанавливает приложение
  • Пользователь очищает данные приложения.

Источник

FirebaseInstanceId может рассматриваться как PID (персональные идентификационные данные), поэтому относитесь к нему соответственно - помните о новых правилах GDPR, которые вступят в силу в марте 2018 года, если вы ведете бизнес в ЕС.

Вместо этого я бы просто использовал токен, чтобы зарегистрировать пользователя для push-уведомлений, где это необходимо, и отправить его на ваш сервер FCM / GCM.

4
anthonymonori 3 Янв 2018 в 13:15