Доступ к физическому хранилищу базы данных Expo SQLite - PullRequest
0 голосов
/ 16 января 2020

Я занимаюсь разработкой приложения android с использованием React-Native в CLI expo. Я пытаюсь создать и записать в базу данных, используя библиотеку 'expo-sqlite'. Моя среда тестирования - это мой android телефон, использующий приложение Expo путем сканирования штрих-кода QR, отображаемого в комплекте метро в моем браузере.

Мой код представлен ниже:

OnClick = () => {
 let db = SQLite.openDatabase('testdb', 'version1')
 let str = 'CREATE TABLE contacts (    contact_id INTEGER PRIMARY KEY,    first_name TEXT NOT NULL,    
            last_name TEXT NOT NULL,    email TEXT NOT NULL UNIQUE,    phone TEXT NOT NULL UNIQUE);'
  db.transaction((txn) => {
  txn.executeSql(str, [],
  (txn, rs) => console.log('successfull'),
  (error) => console.log(error)) }) }

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

В некоторых сообщениях говорится, что файл базы данных находится под data/exp.exponent/files, однако этот каталог пуст. Я попытался войти console.log(FileSystem.documentDirectory), он указывает на file:///data/user/0/host.exp.exponent/files/ExperienceData/%2540anonymous%252FMyProject-195b03bc-663c-49e9-aac3-2d9bdf0a3d37/; Однако я не смог найти этот путь на моем телефоне.

Ваша помощь приветствуется.

1 Ответ

0 голосов
/ 20 января 2020

После долгих исследований я обнаружил следующее:

1- Import FileSystem from 'expo-file-system'; default saving location is : 
   FileSystem.documentDirectory + 'SQLite/databasename' 
2- There is no convenient way to access the database file in the path stated in point 
   1(unless your Android device is rooted); however, a turnaround consists of using the MediaLibrary module, and saving 
   the database file to DCIM folder (Android).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...