Realm React-Native:从 JS(反应本机代码)和 android(java)访问相同的领域

Posted

技术标签:

【中文标题】Realm React-Native:从 JS(反应本机代码)和 android(java)访问相同的领域【英文标题】:Realm React-Native: Access same realm from JS(react native code) and android(java) 【发布时间】:2017-09-23 20:31:25 【问题描述】:

我有一个用例,我在 android 代码(本机)中接收一些数据。我想将此数据插入到由我的反应代码打开或创建的同一领域中。

或者写在同一个领域。我怎样才能做到这一点?感谢所有帮助。 附:我知道我可以以某种方式制作一个本机模块并将数据发送回我的 JS 并在那里执行操作.. 但我不确定如果我的应用不在前台会发生这种情况。

现在我正在后台运行一个服务,它将接收数据并将其保存在领域中。

我有什么办法吗??

【问题讨论】:

即使是现在,Realm React-Native 和 Realm Java 的版本似乎也没有匹配的核心版本,所以我认为目前没有。如果 Realm-JS 能稍微收拾一下,那就有可能 @EpicPandaForce 感谢您的洞察力。我仍然必须做到这一点,所以如果你能指出我正确的方向,那就太好了。 我并没有真正关注 Realm-JS 的问题,但我唯一能想到的就是稍微唠叨他们发布一个 Realm-JS 以与核心 2.6.1 和同步 1.6.0,所以我发布了一个问题 github.com/realm/realm-js/issues/984——但您通常应该确保您知道 Realm 文件的迁移发生在哪里。 @EpicPandaForce 非常感谢您的调查。我知道只有在架构更改正确时才会发生迁移? @EpicPandaForce 如果您能详细说明一下核心和同步或将我引导到我可以阅读的地方,那就太好了。 【参考方案1】:

如果我理解正确,我只想在原生代码和反应原生代码上都使用 Realm 正确吗?

如果是这样,它应该像在两个代码上初始化领域一样简单(使用相同的路径),并正常写入/查询。我这样做了,它奏效了。

【讨论】:

这真的很棒。您是否能够从两个接口(JS 和 java)访问相同的数据?例如。如果 JS 代码在底层领域进行了一些更改,您是否能够从本机(Java)端获得这些更改?感谢帮助。 @ramon【参考方案2】:

我有同样的要求,并尝试从 android 和 react-native 访问相同的文件,这会破坏我的应用程序。我在一侧更改为路径文件以证明其路径文件相关。

如果领域团队的某个人能够确认这是否有效,以及我应该如何解决这个问题,那就太好了。我假设更多的用户会在 android 中使用服务并且需要访问 react-native 中的数据。

版本 js: "领域": "^2.21.0", "react-native": "0.57.7",

版本安卓: 'com.android.tools.build:gradle:3.2.1' minSdkVersion = 26

【讨论】:

以上是关于Realm React-Native:从 JS(反应本机代码)和 android(java)访问相同的领域的主要内容,如果未能解决你的问题,请参考以下文章

Realm JS:正确查询以使用 AND 条件从列表中获取对象

我运行了 react-native 链接领域,但仍然出现错误

React-native 的领域。重置数据库

Xcode 9 错误在本地存储中安装 Realm 后

Realm 与 React Native 0.29 兼容吗?

领域数据库 - 反应原生