react-native - 如何为 React Native 应用程序创建 Realm DB?

标签 react-native android-emulator realm

也许我的想法不对,但是我该如何创建一个预填充的 Realm DB?例如,假设我想创建一个包含 1000 个单词和定义的字典。用户可以在应用内更改定义,但最初数据库将具有默认定义。

我可以创建一个包含 1000 个单词和定义的 .realm 文件并将其包含在我的应用程序中吗?

仅供引用:我将 Realm 与 React Native 结合使用,我目前正在测试使用 emulator -avd CordovaAVD 启动我的 Android 模拟器。

最佳答案

我想我已经解决了这个问题,所以我会发布我的解决方案以防其他人发现它有用。

我有一个函数可以填充 Realm DB。但是,一旦我运行该函数,我就想获取该静态数据库并使用它,而不是在每次应用程序启动时都生成该数据库。这就是促使我努力的原因。但是,如果您只想备份数据库,这些步骤也很有用。

我主要是使用模拟器进行测试,但我认为如果您在实际设备上进行测试,这些步骤会奏效。

从模拟器获取 Realm DB:

  1. 通过在您的代码中的某处添加以下内容,在手机中找到您的 Realm 文件的路径:
    let YourRealmDB = new Realm({schema: [YourSchema]});
    console.log('YourRealmDB path =', YourRealmDB.path);
  1. 路径类似于
    /data/data/(package.name)/files/(filename).realm
    “文件名”可能是“默认”
  2. 从命令行运行
    adb exec-out run-as (package.name) cat 文件/(文件名).realm > (文件名).realm
  3. 这会将您的 Realm 数据库复制到您的当前目录

现在,要在您的应用中使用该数据库:

  1. 创建 Realm 对象:
    let YourRealmDB = new Realm({schema: [YourSchema]});
  2. 将对象路径设置为您的数据库:
    YourRealmDB.defaultPath = 'path/to/your/db/(filename).realm';

注意:如果您像这样使用“本地”数据库并且您的应用程序执行写操作,它不会写 到您的本地数据库。它将写入位于 YourRealmDB.path 的数据库。所以如果你想复制或 查看更新的数据库,您需要运行 adb exec-out run-as (package.name) cat files/(filename).realm > (filename).realm 再次获取最新版本的数据库。

希望对您有所帮助。我花了很长时间才把它们拼凑起来。

关于react-native - 如何为 React Native 应用程序创建 Realm DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40200704/

相关文章:

android - Realm 在 executeTransactionAsync 的 onSuccess 回调中关闭错误

ios - 首选哪种 MobileDB 容器来存储用户数据模型(iOS)?

android - 如何在一次交易中在 Firebase 上创建用户和上传数据

android - 禁止在 VirtualBox 中使用 Android 启动模拟器

React-Native/Redux-传奇 : how to wait for dispatch to finish

Android 应用程序适用于 Eclipse 模拟器,但 Play 商店说我的设备不兼容

Android 模拟器 2.0 工具栏在 linux (KDE) 中不可点击

ios - 来自服务器的数据库中的 Realm 更新结果

android - 如何在 react-native 中组合多个内联样式对象和内联 css?

reactjs - (react-native-svg错误) "Tried to register two views with the same name RNSVGRect"