Как восстановить учетную запись пользователя, если пользователь удалил приложение или сменил телефон? - PullRequest
0 голосов
/ 09 мая 2020

Я работаю с Cloud Firestore и пришел к вопросу вверху. Я покажу вам пример:

  1. Пользователь устанавливает приложение и входит в систему с помощью Google. Я сохраняю информацию для входа в систему в хранилище устройства, чтобы пользователю не приходилось каждый раз входить в систему. Он также хранится в Firestore со сгенерированным идентификатором.
  2. Пользователь играет с приложением и однажды удаляет его. Это стирает информацию для входа в асинхронное c хранилище, теряя сгенерированный идентификатор, который предоставил ему доступ к приложению.
  3. Однажды он решает установить его снова, скажем, на другом устройстве. , чтобы было сложнее. В его профиле была различная информация или, возможно, активный план платежей, который он забыл удалить, и он хочет сделать это сейчас. Он нажимает на google логин, так как он это сделал, но теперь информация профиля пропала, потому что была создана другая учетная запись с другим сгенерированным идентификатором.

Как этого избежать? Я хочу, чтобы приложение каким-то образом запомнило учетную запись пользователя. Учетная запись пользователя будет храниться в моем Firestore.

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

Согласно docs :

  • Для Android и iOS сохранение в автономном режиме включено по умолчанию.

Это означает, что по умолчанию Firestore создает локальную копию базы данных на клиентском устройстве.

Пользователь устанавливает приложение и входит в систему с помощью Google.

Итак Я предполагаю, что вы уже реализовали аутентификацию Firebase с Google .

Он также хранится в Firestore со сгенерированным идентификатором.

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

Пользователь играет с приложением и однажды удалит его. Это стирает информацию о входе в систему в асинхронном c хранилище, теряя сгенерированный идентификатор, который предоставил ему доступ к приложению.

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

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

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

0 голосов
/ 09 мая 2020

Я не уверен, в какой структуре вы работаете, чтобы создать приложение, но firebase sdk имеет вход вместе с созданием пользователя с адресом электронной почты и паролем. Необходимые данные могут быть сохранены в документе пользователя в Firestore.

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