RxDBAdapterRemoteBase
Defined in: packages/rxdb/src/rxdb-adapter.ts:226
数据库适配器基类(远程)
Extends
Extended by
Constructors
Constructor
new RxDBAdapterRemoteBase(rxdb): RxDBAdapterRemoteBase;
Defined in: packages/rxdb/src/rxdb-adapter.ts:96
Parameters
| Parameter | Type |
|---|---|
rxdb | RxDB |
Returns
RxDBAdapterRemoteBase
Inherited from
Properties
repository_cache
protected readonly repository_cache: Map<EntityType, IRepository<any>>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:94
Inherited from
RxDBAdapterBase.repository_cache
repository_map
protected readonly repository_map: Map<string, RepositoryConstructor<any>>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:93
Inherited from
RxDBAdapterBase.repository_map
rxdb
readonly rxdb: RxDB;
Defined in: packages/rxdb/src/rxdb-adapter.ts:96
Inherited from
Methods
fetchMetadata()
abstract fetchMetadata(entityName, query): Observable<QueryCacheEntityMetadata[]>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:302
获取实体元数据,用于新鲜度比较(QueryCache 专用)
只返回 { id, updatedAt } 元数据,网络传输量比完整数据减少 90%+。
这是 QueryCache 同步策略的核心能力。
Parameters
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
query | RuleGroup<unknown> | 查询条件 |
Returns
Observable<QueryCacheEntityMetadata[]>
Observable<QueryCacheEntityMetadata[]> - 实体 ID 和 updatedAt
Example
adapter.fetchMetadata('Product', { where: { status: 'active' } })
.subscribe(metadata => {
// metadata: [{ id: 'p1', updatedAt: '2026-01-12T10:00:00Z' }, ...]
});
findByIds()
abstract findByIds<T>(entityName, ids): Observable<T[]>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:321
按 ID 列表批量获取完整数据(QueryCache 专用)
用于拉取过时或缺失的数据,避免 N+1 问题。
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
ids | string[] | 需要获取的实体 ID 列表 |
Returns
Observable<T[]>
Observable<T[]> - 完整实体数据
Example
adapter.findByIds('Product', ['p1', 'p2', 'p3'])
.subscribe(products => {
// products: [{ id: 'p1', name: 'Product A', ... }, ...]
});
getChangeCount()
abstract getChangeCount(sinceId, repositoryFilter?): Promise<{
count: number;
latestChangeId: number;
}>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:257
获取远程变更数量(轻量级,不下载数据)
此方法只查询远程有多少新变更,不返回实际数据。 用于实现 checkRepositoryUpdates() 功能,节省带宽。
Parameters
| Parameter | Type | Description |
|---|---|---|
sinceId | number | 起始 changeId(不包含该 ID) |
repositoryFilter? | string[] | 可选的实体过滤列表 |
Returns
Promise<{
count: number;
latestChangeId: number;
}>
变更数量和最新 changeId
getRepository()
abstract getRepository<T, RT>(EntityType): RT;
Defined in: packages/rxdb/src/rxdb-adapter.ts:98
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends EntityType | - |
RT extends IRepository<T> | IRepository<T> |
Parameters
| Parameter | Type |
|---|---|
EntityType | T |
Returns
RT
Inherited from
mergeChanges()
abstract mergeChanges(actions): Promise<number | void>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:278
应用压缩后的变更到远程实体表
实现策略(Supabase):
- 将 actions (Map) 转换为 RemoteChange 记录
- 在事务中: a) 写入远程 RemoteChange 表(用于其他客户端 pull) b) 直接操作远程实体表(INSERT/UPDATE/DELETE)
Parameters
| Parameter | Type | Description |
|---|---|---|
actions | SwitchVersionActions | 压缩后的变更操作集合(从本地 push 来的) |
Returns
Promise<number | void>
创建的远程 RxDBChange 的最大 ID(用于更新 lastPullRemoteChangeId)
pullChanges()
abstract pullChanges(
sinceId,
limit?,
repositoryFilter?,
filter?): Promise<RemoteChange[]>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:240
从远程拉取变更记录
Parameters
| Parameter | Type | Description |
|---|---|---|
sinceId | number | 拉取此 ID 之后的变更(不包含该 ID) |
limit? | number | 最大拉取数量 |
repositoryFilter? | string[] | 可选的实体过滤列表(用于 repository-level sync) |
filter? | RuleGroup<any> | 可选的行级过滤条件(用于 SyncType.Filter) |
Returns
Promise<RemoteChange[]>
变更记录数组,按 id ASC 排序
Remarks
当提供 filter 参数时,会通过 JOIN 实体表并应用过滤条件, 只返回满足条件的实体对应的变更记录。
repository()
protected repository<RT>(repositoryName, RepositoryClass): void;
Defined in: packages/rxdb/src/rxdb-adapter.ts:105
注册适配器的仓库
Type Parameters
| Type Parameter |
|---|
RT extends RepositoryBase<any> |
Parameters
| Parameter | Type |
|---|---|
repositoryName | string |
RepositoryClass | RepositoryConstructor<RT> |
Returns
void