Я использую Центр уведомлений Azure для отправки удаленных уведомлений, в настоящее время только на iOS.
Сначала я понял, что мое устройство получало 5 уведомлений об одном событии уведомления. Я проверил и отладил свой код, и он действительно правильно проверяет, не зарегистрирован ли уже предоставленный токен для регистрации.
Затем я проверил свою базу данных и понял, что у меня нет дубликатов, а есть 5 разных токенов устройств для одного устройства и учетной записи пользователя. Каждый из них создавался каждый раз, когда я удаляю, а затем повторно устанавливаю приложение на свое устройство.
Учитывая это, я мог бы подумать, что при удалении приложения токен, сгенерированный ранее, становится недействительным в системах Apple? Я предположил это, потому что при повторной установке создается новый токен, отличный от предыдущего. Почему старые токены останутся действительными; какой вариант использования для таких.
Похоже, другие люди сталкиваются с этой проблемой при разработке iOS, включая Android.
Использование VendorId для идентификации устройства оказывается бессмысленным, , как некоторые выясняют, он также изменяется при новой установке. Когда я удаляю приложение и переустанавливаю, я получаю новый vendorId плюс новый токен уведомления, оставляя предыдущие действительными, открывая возможность получать несколько экземпляров одного уведомления (поскольку серверная часть не может сопоставить новые два значения с все, что есть в базе данных).
Какие-нибудь советы по этому поводу, пожалуйста? Я совершенно потерялся в этом?
Обновление: мне определенно нужно, чтобы у пользователя было более одного токена устройства одновременно, на случай, если он вошел в систему на нескольких устройствах.