Хранение аутентифицированных пользовательских данных с помощью Realm или UserDefaults?

#ios #swift #xcode #realm

#iOS #swift #xcode #realm

Вопрос:

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

У меня уже настроен класс Realm User , но я использую этот класс для хранения пользовательских данных из сообщений других пользователей. Итак, мой вопрос в том, как я должен хранить данные аутентифицированного пользователя? Есть два варианта, о которых я думал, но оба кажутся неправильными:

  1. Создайте AuthenticatedUser класс realm и сохраните его там. Я не думаю, что realm поддерживает создание подклассов других классов realm (в данном случае моего уже существующего User класса), так что это не похоже на правильное решение.
  2. Сохраняйте пользовательские данные в UserDefaults , но опять же, это кажется неправильным, если я уже использую realm.

Что мне здесь делать? Каков наилучший подход к решению этой проблемы?

Комментарии:

1. UserDefaults лучше, если данные не слишком большие, какие данные вы планируете хранить?

2. Зачем вам нужно хранить эти аутентифицированные пользовательские данные? Когда пользователь проходит аутентификацию, он становится известным пользователем realm, так что еще вам нужно сделать с этими данными? Каков вариант использования?

3. @Jay Такие вещи, как их имя пользователя, отображаемое имя, URL-адрес изображения профиля и т.д.

4. Почему бы вам не создать область под названием Users, в которой хранятся данные объекта userInfo realm с такими свойствами, как отображаемое имя, изображение прибыли и т.д.? Немного неясно, о чем спрашивается и в чем собственно проблема. Возможно, вы могли бы прояснить вопрос и объяснить, где вы застряли?

Ответ №1:

ИМО, вы должны использовать Realm для хранения пользовательских данных, но не в обычном формате. Используйте шифрование, поддерживаемое Realm. Они поддерживают шифрование AES-256 для хранимых данных. Пожалуйста, посмотрите этот URL: «https://realm.io/products/realm-database /«. подклассы должны обрабатываться отдельно путем сохранения каждого класса, и мы должны поддерживать взаимосвязь.

Пользовательские настройки по умолчанию — это серьезное «нет» для хранения конфиденциальной информации. Они хранятся в plist в двоичном формате без шифрования и хранятся в каталоге вашего приложения. Пожалуйста, ознакомьтесь с подробностями ниже: «https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data /«

Надеюсь, это поможет.