我正在expo CLI下使用React-Native开发一个android应用程序。我正在尝试使用“expo-sqlite”库创建和写入数据库。我的测试环境是我的android手机,通过扫描浏览器上metro包中显示的QR条形码来使用Expo应用程序。
我的代码如下所示:
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/
;但是我在手机上找不到路径。
感谢你的帮助。
3条答案
按热度按时间mwg9r5ms1#
我找到了一种方法,使用expo共享库将DB文件传输到我的PC上。首先做一些导入:
下面的代码将打开一个共享窗口,你可以通过whatsapp或outlook共享你的数据库,这样你就可以通过whatsapp web下载文件并查看你的数据库中发生了什么。
ix0qys7i2#
经过大量的研究,我发现以下几点:
h43kikqp3#
这就是我最终想明白的:
FYI我正在使用iOS模拟器。
我在努力找世博会创建数据库的文件夹。
1.我安装了文件系统包
npx expo install expo-file-system
1.然后我想看看
FileSystem.documentDirectory
会注销什么,因为我不知道expo把我的东西放在哪里。因此,我只创建了一个按钮,并在onClick上记录了它返回的值
1.在我的终端导航到路径。它应该看起来像
~/Library/Developer/CoreSimulator/Devices/AF763EBC-48F3-4238-A1E5-0DB2B43359D0/data/Containers/Data/Application/115EEA6B-5A65-47DE-96F9-1A4126EB2F2D/Documents/ExponentExperienceData
1.在我进入
/ExponentExperienceData
后,我用open .
在Finder中打开了它1.然后我可以看到2个目录。其中一个是SQLite文件夹,里面是我的数据库。然后简单地用任何读取.db文件的应用程序打开文件(在我的情况下是TablePlus)。
仅供参考我的数据库是用
没别的了。
希望这能对人有所帮助干杯