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

时间:2016-10-23 07:45:44

标签: react-native android-emulator realm

也许我以错误的方式思考这个问题,但是如何创建预先填充的Realm DB呢?例如,让我们说我想创建一个包含1000个单词和定义的字典。用户可以在应用程序中更改定义,但最初数据库将具有默认定义。

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

仅供参考:我正在使用Realm和React Native,我目前正在使用 private void onClickRemove(object sender, EventArgs e) { foreach(TextBox text1 in inputTextBoxes) { this.Controls.Remove(text1); } } 进行测试以启动我的Android模拟器。

1 个答案:

答案 0 :(得分:2)

我想我已经想到了这一点,所以我会发布我的解决方案,万一其他人可能会发现它有用。

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

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

从模拟器中获取Realm DB:

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

      1. 创建领域对象:
        let YourRealmDB = new Realm({schema: [YourSchema]});
      2. 设置数据库的对象路径:
        YourRealmDB.defaultPath = 'path/to/your/db/(filename).realm';
      3. 注意:如果您使用这样的“本地”数据库并且您的应用程序执行写入操作,则不会写入     到您的本地数据库。它将在YourRealmDB.path写入数据库。所以,如果你想复制或     查看更新后的数据库,您需要运行adb exec-out run-as (package.name) cat files/(filename).realm > (filename).realm     再次获取最新版本的数据库。

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