世博会离线数据库

kal*_*oft 5 react-native expo

我的用户将在本地存储 10-500 条记录。我正在寻找一个具有与 Expo 兼容的离线优先方法的数据库。

最终,用户可以选择将数据同步到(尚未确定的)在线服务。也在寻找这方面的建议。

用户应该能够注册帐户以使用在线功能,例如同步数据、上传照片和查看其他用户内容。即使没有帐户,离线功能也应该可以使用。

您对数据库层和堆栈有什么建议?希望听到您的建议。

Fab*_*ioG 4

正如 Bruno Eduardo 在 Expo 附带 sqlite 的评论中提到的。示例:您从 expo 导入 SQLite:

import { SQLite } from 'expo';
Run Code Online (Sandbox Code Playgroud)

然后您可以像这样启动数据库:

const db = SQLite.openDatabase('db.db');
Run Code Online (Sandbox Code Playgroud)

这将在本地用户电话中创建数据库。
从那里您可以查询您想要创建的表并加载数据,如下所示。

db.transaction(tx => {
tx.executeSql('create table if not exists users (id integer);')
});
Run Code Online (Sandbox Code Playgroud)

您可以采取两种方法(可能更多,但我想到的只有两种)。您可以从 api 查询数据,以便它在本地加载。或者另一个选项是将已设置数据的数据库复制到设备。

我需要指出的是,您的方法存在一些问题。出于多种原因(我不会提及),最佳实践是使用 api 来获取数据。如果您处理简单的记录,则查询 api 的时间会很短。如果用户“最终用户将可以选择同步数据”,那么最好在开始构建本地数据库之前考虑解决这个问题。