在默认路径中创建一个新的Realm 实例。
打开不兼容的同步 Realm 时出现错误。
在提供的路径中创建一个新的Realm实例。
首次创建 Realm 时必需。
如果无法在提供的路径打开 Realm,则会出现错误。
打开不兼容的同步 Realm 时出现错误。
使用提供的配置创建新的Realm 实例。如果config.path中尚不存在 Realm(如果未提供,则为 Realm.defaultPath ),则此构造函数将使用提供的config.schema (本例中为必填项)创建该 Realm。 否则,该实例将从该路径的文件访问现有 Realm。 在这种情况下, config.schema是可选的或没有更改,除非config.schemaVersion递增,在这种情况下,Realm 将自动迁移以使用新模式。 对于基于查询的同步,需要config.schema 。 如果未定义config.schema ,则会引发异常。
首次创建 Realm 时必需。
如果提供的配置中的任何内容无效,则出现错误。
打开不兼容的同步 Realm 时出现错误。
Private
beforePrivate
Private
类Private
如果需要,使用初始订阅更新订阅。
初始订阅。
Realm 是否已存在。
Private
schemaPrivate
schemaReadonly
同步会话(如果这是同步 Realm)
Static
默认路径Static
Private
Static
Private
确定路径当路径为相对路径且配置包含同步对象时,Core 将替换任何现有文件扩展名或添加“.realm” 后缀。
Static
Private
Static
Private
Static
Private
内部Static
Private
TODO:考虑通过确保 ".realm" 后缀(在此过程中与其他 SDK 团队协调)
Static
Private
指示此 Realm 是否已关闭。
true
如果已关闭,则为false
。
2.1.0
指示此 Realm 是否包含任何对象。
true
如果为空,则为false
,否则为空。
1.10.0
指示此 Realm 是否在内存中打开。
true
如果此 Realm 位于内存中,则为false
。
指示此 Realm 是否正在迁移。
true
如果正在迁移,则为false
否则
12.3.0
指示此 Realm 是否处于写事务(write transaction)中。
true
如果处于写事务(write transaction)中,否则为false
。
1.10.3
指示此 Realm 是否以只读方式打开。
true
如果此 Realm 为只读,则为false
。
0.12.0
存储此 Realm 的文件的路径。
一个字符串,其中包含存储此 Realm 的文件的路径。
0.12.0
构造此 Realm 时在配置中提供的模式的规范化表示。
描述此 Realm 中所有对象的CanonicalObjectSchema数组。
0.12.0
Realm 的当前模式版本。
此 Realm 的模式版本,形式为number
。
0.12.0
最新的 Flexible Sync 订阅集。
一个SubscriptionSet对象。
如果未为此应用启用 Flexible Sync,则会出现错误。
为指定的 eventName 添加侦听器回调。
应导致调用回调的事件的名称。
发生变更事件时调用的函数。 对于每个事件,每个回调只会调用一次,无论该事件被添加多少次。
如果提供的事件 eventName 无效、Realm 已关闭或回调不是函数,则会出现错误。
启动写事务(write transaction)。
进行事务时,强烈建议进行错误处理。 如果不处理错误,数据可能会不一致。 错误处理通常涉及取消事务。
如果已处于写事务(write transaction)中,则出现错误
realm.beginTransaction();
try {
realm.create('Person', { name: 'Arthur Dent', origin: 'Earth' });
realm.create('Person', { name: 'Ford Prefect', origin: 'Betelgeuse Five' });
realm.commitTransaction();
} catch (e) {
realm.cancelTransaction();
throw e;
}
将此 Realm 中的所有字符串列替换为字符串枚举列,并压缩数据库文件。
无法从写事务(write transaction)中调用。
如果存在其他Realm实例,则不会进行压缩。
正在进行压实时,其他线程或进程打开数据库的尝试将等待。
请注意,压实所需的资源与数据库中的实时数据量成正比。压实的工作原理是将数据库内容写入临时数据库文件,然后用临时数据库替换数据库。
true
如果压缩成功,则返回false
。
删除 Realm 模型,包括其所有对象。 如果在迁移函数外部调用,schema和schemaVersion会被更新。
模型名称。
删除所有事件侦听器(仅限于事件 eventName,如果提供)。
Optional
eventName : RealmEventName应删除其侦听器的事件的名称。
提供无效的事件 eventName 时出现错误。
删除指定事件 eventName 的侦听器回调。
事件名称。
之前通过addListener方法添加为此事件的侦听器的函数。
如果提供的事件 eventName 无效、Realm 已关闭或者回调不是函数,则会出现错误。
在写事务(write transaction)中同步调用提供的回调。如果事务内部发生异常,您将丢失该事务中的更改,但 Realm 本身不会受到影响(或损坏)。 更准确地说,将自动调用beginTransaction和commitTransaction 。 如果在事务期间抛出任何异常,则将调用cancelTransaction而不是commitTransaction ,并且该异常将被重新抛出给write的调用者。
回调的返回值。
使用给定配置写入 Realm 的压缩副本。
目标文件不能已存在。 支持同步和非同步 Realm 之间的所有转换,并将根据描述所需输出的配置参数执行。
请注意,如果从写事务中调用此方法,则写入当前数据,而不是提交上一个写事务时的数据。
描述输出 Realm 的 Realm 配置。
Static
Private
Static
复制任何 Realm 文件(即 *.realm
)从应用程序目录复制到应用程序的文档目录中,以便 Realm 可以打开和使用它们。 如果该文件已存在于文档目录中,则不会覆盖该文件,因此可以安全地多次调用该文件。
应在打开 Realm 之前调用此函数,以便将捆绑的 Realm 文件移动到可以写入的位置。
// Given a bundled file, example.realm, this will copy example.realm (and any other .realm files)
// from the app bundle into the app's documents directory. If the file already exists, it will
// not be overwritten, so it is safe to call this every time the app starts.
Realm.copyBundledRealmFiles();
const realm = await Realm.open({
// This will open example.realm from the documents directory, with the bundled data in.
path: "example.realm"
});
这仅适用于 React Native。
如果发生 I/O 错误或未实现方法,则返回错误。
Static
创建模板对象为 Realm 模型类创建模板对象,其中所有可选字段均未定义,所有必填字段均具有给定数据类型的默认值,该值要么是模式中默认属性设置的值,要么是数据类型的默认值,如果模式未指定 1,即 0、false 和 ""。
描述应创建的对象的模式。
Static
删除给定配置的 Realm 文件。
正在删除的 Realm 的配置。
如果提供的配置中的任何内容无效,则出现错误。
Static
存在检查磁盘上是否已存在 Realm。
Realm 的路径。
true
如果设备上存在该 Realm,则返回false
。
如果提供的路径中的任何内容无效,则出现错误。
检查磁盘上是否已存在 Realm。
Realm 的配置。
true
如果设备上存在该 Realm,则返回false
。
如果提供的配置中的任何内容无效,则出现错误。
Static
打开使用 Promise 异步打开默认 Realm。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
使用 Promise 异步打开 Realm。 如果 Realm 已同步,则在可用之前将完全同步。
Realm 的路径。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
使用 Promise 异步打开 Realm。 如果 Realm 已同步,则在可用之前将完全同步。 对于基于查询的同步,需要Configuration.schema 。 如果未定义Configuration.schema ,则会引发异常。
Realm 的配置。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
如果提供的配置中的任何内容无效,则出现错误。
Static
schemaStatic
设置日志级别。
记录器要使用的日志级别。 默认值为info
。
Optional
类别: "Realm" | "Realm.Storage" | "Realm.Storage.Transaction" | "Realm.Storage.Transaction" | "Realm.Storage.Query" | "Realm.Storage.Object" | "Realm.Storage.Notification" | "Realm.Sync" | "Realm.Sync.Client" | "Realm.Sync.Client.Session" | "Realm.Sync.Client.Changeset" | "Realm.Sync.Client.Network" | "Realm.Sync.Client.Reset" | "Realm.Sync.Server" | "Realm.App" | "Realm.SDK"要为其设置日志级别的类别。 如果省略,则为所有类别设置日志级别 ( "Realm"
)。
可以在应用程序的生命周期内更改日志级别。
12.0.0
Realm.setLogLevel("all");
Static
设置记录器设置记录器回调。
记录器调用的回调。 默认回调使用console.log
、 console.warn
和console.error
,具体取决于消息级别。
在打开第一个 Realm 之前,需要设置记录器回调。
12.0.0
Realm.setLogger(({ category, level, message }) => {
console.log(`[${category} - ${level}] ${message}`);
});
设置记录器回调。
记录器调用的回调。 默认回调使用console.log
、 console.warn
和console.error
,具体取决于消息级别。
在打开第一个 Realm 之前,需要设置记录器回调。
12.0.0
改为传递采用单个对象参数的回调。
Realm.setLogger((level, message) => {
console.log(`[${level}] ${message}`);
});
Static
shutdown关闭所有 Realm,取消所有待处理的 Realm.open调用,清除内部缓存,重置记录器并收集垃圾。 调用此方法可释放事件循环,并允许 Node.js 执行从容退出。
使用TypeDoc生成
Realm 数据库。