我的用户将在本地存储 10-500 条记录。我正在寻找一个具有与 Expo 兼容的离线优先方法的数据库。
最终,用户可以选择将数据同步到(尚未确定的)在线服务。也在寻找这方面的建议。
用户应该能够注册帐户以使用在线功能,例如同步数据、上传照片和查看其他用户内容。即使没有帐户,离线功能也应该可以使用。
您对数据库层和堆栈有什么建议?希望听到您的建议。
正如 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 的时间会很短。如果用户“最终用户将可以选择同步数据”,那么最好在开始构建本地数据库之前考虑解决这个问题。
| 归档时间: |
|
| 查看次数: |
7183 次 |
| 最近记录: |