У меня есть приложение для Android, доступное в google play с около 5 тысячами ежедневных пользователей.
У меня странная ошибка, связанная с аутентификацией в firebase, это что-то необычное, поэтому, пожалуйста, внимательно прочитайте, прежде чем делать выводы:
Я использую Android_ID в качестве идентификатора для пользователей моего приложения Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)
Я знаю, что это не лучшая идея, но она соответствует моим требованиям, потому что она уникальна, у каждого есть и онаневозможно изменить (я предпочитаю).Таким образом, я использую его для аутентификации своих пользователей в firebase, таким образом, я могу написать правила для firebase, которые блокируют пользователей от просмотра данных других пользователей на основе их ANDROID_ID
НО НЕКОТОРЫЕ ПОЛЬЗОВАТЕЛИ ПОЛУЧАЮТ ДОСТУП ОТКРЫТЫХ, КОГДА ПЫТАЮТСЯ ЧИТАТЬ ИХСОБСТВЕННЫЕ ДАННЫЕ ...
Это выглядит очень странно, и первая идея состоит в том, что в моем коде есть ошибка, но после отладки я не смог найти никакой ошибки, поэтому я начал регистрировать запросы
и мои журналы показали что-то вроде этого
D/CrashlyticsCore check firebase access denied: device_id: e4c511c3-8ed7-3430-b3b0-e16d56acd2ad auth: da190696-e4bc-32f9-b229-eb24631a39fc
В этом сообщении говорится, что пользователь прошел проверку подлинности: da190696...
, но знает, что его значение идентификатора: e4c511c3...
Iтакже заметил, что отказ в доступе обычно происходит после того, как приложение было свернуто
, поэтому вопрос: есть ли объяснение этому?Можно ли пользователю изменить device_id на некорневом устройстве?возможно ли как-то это было рандомизировано андроидом?