В чем причина исчезновения данных хранилища?

Хранение в приложении, которое использовалось до сих пор, все данные исчезли в обновлении. Нет никаких изменений в @ ионной версии / версии для хранения или ионной версии.

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

"@ionic/storage": "2.0.0"


--- Ionic Info ---

Ionic:

   ionic (Ionic CLI)  : 4.0.1 (C:\Users\xxxxx\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.1.11

Cordova:

   cordova (Cordova CLI) : not installed
   Cordova Platforms     : android 6.3.0, ios 4.5.4

System:

   Android SDK Tools : 26.1.1
   NodeJS            : v8.11.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.2.0
   OS                : Windows 7

Environment:

   ANDROID_HOME : C:\Users\xxxxx\AppData\Local\Android\Sdk

1 ответ

Ionic Storage - это "оболочка" из библиотеки localForage, которая включает в себя различные решения для сохранения (через "драйверы"). Единственное "гарантированное" постоянство - это SQLite, если ионное хранилище работает на гибридном устройстве (приложение Cordova). Другие драйверы на основе браузера (indexeddb или websql) сохраняют данные в соответствии с определенным разрешением браузера. И такое постоянство на основе браузера не является действительно "гарантированным", так как на него распространяются:

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

В общем, если только вы не используете SQLite - относитесь к этому Ionic Storage как к постоянному кешу...

Также имейте в виду, что Ionic Storage может использовать один тип хранилища, доступный для него в один момент, а затем переключаться на другой, если условия изменились, что делает ваши данные по-прежнему доступными в websql, но недоступными, так как ваше приложение могло переключиться на indexeddb. Чтобы избежать этого, лучше строго контролировать доступные драйверы и их порядок предпочтений / инициализации

Другие вопросы по тегам