Постоянство пользователей Android Firebase между обновлениями - PullRequest
0 голосов
/ 17 октября 2019

Я использую Firebase в своем приложении для Android и iOS.

Когда пользователь запускает приложение, я создаю анонимного пользователя. На iOS при удалении приложения Firebase получит последнего пользователя, потому что его сеанс хранится внутри цепочки для ключей устройства.

На Android, когда я удаляю и переустанавливаю свое приложение, пользователь всегда null использует:

FirebaseAuth.getInstance().currentUser

Я выполнил поиск в Интернете и обнаружил, что это возможно при использовании android:allowBackup="true"в манифесте приложения. Но это не влияет на мое приложение.

Это манифест моего приложения:

    <application
        android:networkSecurityConfig="@xml/network_security_config"
        android:allowBackup="true"
        android:allowClearUserData="false"
        android:hardwareAccelerated="true"
        android:fullBackupContent="true"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:largeHeap="true"
        android:theme="@style/AppTheme">
...

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

1 Ответ

0 голосов
/ 18 октября 2019

Когда пользователь запускает приложение, я создаю анонимного пользователя. В iOS при удалении приложения Firebase получит последнего пользователя, поскольку он сохраняет сеанс внутри цепочки для ключей устройства.

При использовании анонимной аутентификации Firebase вы создаете только временные анонимные учетные записи для аутентификации ваших пользователей с помощью Firebase. ,Учетные записи анонимной аутентификации не сохраняются при удалении приложений. Когда приложение удаляется, все, что было сохранено локально, будет удалено, включая анонимный токен авторизации, который идентифицирует эту учетную запись. К сожалению, не существует простого способа вернуть этот токен для пользователя.

Однако, начиная с Android 6.0 (уровень API 23), операционная система Android сохраняет данные приложения, загружая их в Google Drive пользователя, которыйозначает, что при использовании:

android:allowBackup="true"

Вы будете иметь локальную копию на устройстве пользователя. Вот официальная документация, касающаяся автоматического резервного копирования Android . Не видя ваш код, трудно сказать, почему он не работает, но он определенно должен. Это сообщение, в котором объясняется, как вы можете отключить его:

Пожалуйста, такжеобратите внимание, что если вы очистите кеш, «Данные, ранее сохраненные приложением, не сохранятся» .

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