Хранение больших данных на мобильном устройстве, iOS и Android, с помощью native и expo SQLite. - PullRequest
1 голос
/ 12 апреля 2020

Я работаю над мобильным приложением с реакции на натив и экспо. Критическим моментом приложения является необходимость хранения больших данных на устройстве, поскольку оно будет работать как в автономном, так и в онлайн-режимах. Я подумываю попробовать expo SQLite для этого, и у меня есть несколько вопросов по этому поводу:

  1. Подходит ли это для хранения больших данных на локальном устройстве, как Android, так и iOS?
  2. При удалении данных размер файла базы данных уменьшается или остается неизменным?
  3. Есть ли какие-либо ограничения для типа TEXT?
  4. Можете ли вы предложить какую-либо хорошую документацию, потому что на выставке .io слишком короткий (я думаю)?

Заранее спасибо!

1 Ответ

0 голосов
/ 12 апреля 2020

1) Хранение больших данных в собственном приложении.

Redux-persist и SQLite не идеальные способы хранения больших данных на мобильных устройствах. Вы можете хранить свои данные в хранилище приложений, управляемом соответствующей ОС. Вы можете использовать каталоги Documents или /Library/Caches или tmp на iOS и внешнее хранилище или внешнюю SD-карту на Android. Вам понадобятся разрешения на чтение и запись для Android, вы можете использовать реагировать-нативные-разрешения для его обработки. response-native-fs - хорошая библиотека для сохранения, чтения или удаления файлов.

2) Удаление данных

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

3) Ограничения SQLite

Я предполагаю, что вы храните двоичные файлы. Независимо от типа данных существует ограничение для типа текста SQLite, которое составляет 2 ГБ. Вы можете увидеть больше информации здесь

4) Предложения

Я бы предпочел хранить данные в локальном хранилище, как описано выше, и хранить ссылки в Asyn c Хранилище , управляемое redux-persist или локальной базой данных SQLite.

...