Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

类应用

在此页面上

  • io.realm.mongodb
  • 构造函数
  • 嵌套类摘要
  • 字段摘要
  • 方法摘要
  • 继承方法
  • 字段详细信息
  • NETWORK_POOL_EXECUTOR
  • 构造函数详细信息
  • 方法详细信息
  • addAuthenticationListener
  • allUsers
  • currentUser
  • 等于
  • getConfiguration
  • getEmailPassword
  • getFunctions
  • getSync
  • hashCode
  • login
  • loginAsync
  • removeAuthenticationListener
  • removeUser
  • setNetworkTransport
  • switchUser
java.lang.Object
io.realm.mongodb.App

应用程序是与MongoDB Realm 应用程序交互的主要客户端入口点。该应用程序可用于:

  • 通过身份验证提供程序( io.realm.mongodb.auth.ApiKeyAuthEmailPasswordAuthImpl )注册用户并执行各种与用户相关的操作

  • 使用 Synchronized Realm 在本地设备和远程 Realm 应用之间同步数据

  • 使用Functions调用Realm App 函数

  • 使用MongoDB . 域.mongodb。 Mongo.MongoClient

要创建与远程Realm 应用链接的应用,请初始化 Realm 并配置应用,如下所示:

class MyApplication extends Application {
App APP; // The App instance should be a global singleton
@Override
public void onCreate() {
super.onCreate();
Realm.init(this);
AppConfiguration appConfiguration = new AppConfiguration.Builder(BuildConfig.MONGODB_REALM_APP_ID)
.appName(BuildConfig.VERSION_NAME)
.appVersion(Integer.toString(BuildConfig.VERSION_CODE))
.build();
APP = new App(appConfiguration);
}
}

配置应用后,您可以开始管理用户、配置同步 Realm、调用远程Realm函数以及通过mongo集合访问权限远程数据。 以下示例显示了不能从主线程使用的同步 API。 有关等效的异步对应 项,请参阅域

要注册新用户和/或使用现有用户登录,请执行以下操作:

// Register new user
APP.getEmailPassword().registerUser(username, password);
// Login with existing user
User user = APP.login(Credentials.emailPassword(username, password))

对于授权用户,您可以通过使用io.realm.mongodb.sync.SyncConfiguration打开 Realm,在本地设备和远程 Realm 应用之间同步数据,如下所示:

SyncConfiguration syncConfiguration = new SyncConfiguration.Builder(user, "<partition value>")
.build();
Realm instance = Realm.getInstance(syncConfiguration);
SyncSession session = APP.getSync().getSession(syncConfiguration);
instance.executeTransaction(realm -> {
realm.insert(...);
});
session.uploadAllLocalChanges();
instance.close();

您可以调用远程 Realm 函数,如下所示:

Functions functions = user.getFunctions();
Integer sum = functions.callFunction("sum", Arrays.asList(1, 2, 3, 4), Integer.class);

并从远程 Realm 应用访问collection,如下所示:

MongoClient client = user.getMongoClient(SERVICE_NAME)
MongoDatabase database = client.getDatabase(DATABASE_NAME)
MongoCollection<DocumentT> collection = database.getCollection(COLLECTION_NAME);
Long count = collection.count().get()

提示

另请参阅:

构造函数和描述
App (
String appId
)

构造函数,用于根据给定的AppConfiguration创建应用程序

修饰符和类型
类和描述
public static
public static interface
修饰符和类型
字段和描述

NETWORK_POOL_EXECUTOR

针对MongoDB Realm执行网络请求时使用的线程池。此池仅出于测试目的而公开,在队列非空时替换它将导致未定义的行为。

修饰符和类型
方法和说明
public void

设置全局身份验证侦听器,该侦听器将收到有关登录和注销等用户事件的通知。

公共 Map

返回所有处于User.State.LOGGED_INUser.State.LOGGED_OUT 状态的已知用户。

公共用户

返回当前已登录且仍然有效的用户。

公共布尔值

如果两个应用程序引用相同的AppConfiguration.getAppId() ,则它们被认为是平等的,并将股票其根本的状态。

返回此应用的配置对象。

返回一个包装器,用于与与使用Credentials.Provider.EMAIL_PASSWORD身份提供商创建或登录的用户相关的功能进行交互。

公共函数
User user,
CodecRegistry codecRegistry
)

返回一个函数管理器,用于使用自定义编解码器注册表调用Realm应用的Realm函数,以对参数和结果进行编码和解码。

公共函数

返回用于调用 Realm 应用的 Realm 函数的函数管理器。

公共同步

返回管理正在进行的Realm Sync会话的Sync实例,该会话在本地和与此应用关联的远程Realm应用之间同步数据。

公共整型
公共用户
Credentials credentials
)

以使用与身份验证提供者关联的给定档案的用户身份登录。

以使用与身份验证提供者关联的给定档案的用户身份登录。

public void

删除提供的全局身份验证侦听器。

公共用户

从此设备中删除用户档案。

protected void
OsJavaNetworkTransport transport
)

暴露以进行测试。

公共用户

切换当前用户。

  • 从类 java.lang.Object 继承的方法 :getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitfinalize

针对MongoDB Realm执行网络请求时使用的线程池。此池仅出于测试目的而公开,在队列非空时替换它将导致未定义的行为。

public App (
String appId
)
public App (
)

构造函数,用于根据给定的AppConfiguration创建应用程序

参数

  • config - 用于此应用程序实例的配置。

提示

另请参阅:

设置全局身份验证监听器,该监听器将收到有关登录和注销等用户事件的通知。对身份验证监听器的回调将在用户界面线程上进行。

参数

  • listener — 要注册的侦听器。

抛出异常

public Map allUsers ()

返回所有处于User.State.LOGGED_INUser.State.LOGGED_OUT 状态的已知用户。

只会返回在某个时间点登录过此设备的用户。

返回:

用户标识符和本地已知用户的映射。

public User currentUser ()

返回当前已登录且仍然有效的用户。当用户注销或用户的刷新令牌过期或被撤销时,该用户将失效。

如果有两个或更多用户登录,则此方法将返回最后一个有效用户。

返回:

已登录且仍然有效的当前用户null如果没有用户登录或用户已过期)。

public boolean equals (
)

如果两个应用程序引用相同的AppConfiguration.getAppId() ,则它们被认为是平等的,并将股票其根本的状态。

覆盖

equals Object 类中

返回此应用的配置对象。

返回:

此应用程序的配置。

返回一个包装器,用于与与使用Credentials.Provider.EMAIL_PASSWORD身份提供商创建或登录的用户相关的功能进行交互。

返回:

用于与Credentials.Provider.EMAIL_PASSWORD身份提供商交互的包装器。

User user,
CodecRegistry codecRegistry
)

返回一个函数管理器,用于使用自定义编解码器注册表调用Realm应用的Realm函数,以对参数和结果进行编码和解码。

提示

另请参阅:

返回用于调用Realm应用的Realm函数的函数管理器。这将使用应用的默认编解码器注册表对参数和结果进行编码和解码。

public Sync getSync ()

返回管理正在进行的Realm Sync会话的Sync实例,该会话在本地和与此应用关联的远程Realm应用之间同步数据。

返回:

与此App关联的Sync实例。

public int hashCode ()

覆盖

hashCode Object 类中

public User login (
Credentials credentials
)

以具有与凭证身份验证提供者关联的给定档案的用户身份登录。登录的用户成为当前用户。 其他应用功能代表当前用户。

如果已经存在当前用户,则该用户仍处于登录状态,并且可以在allUsers()返回的列表中找到。

还可以使用switchUser(User)在被视为当前用户的用户之间进行切换。

参数

  • credentials - 代表登录类型的凭证。

返回:

代表登录用户的User

抛出异常

以具有与凭证身份验证提供者关联的给定档案的用户身份登录。登录的用户成为当前用户。 其他应用功能代表当前用户。

如果已经存在当前用户,则该用户仍处于登录状态,并且可以在allUsers()返回的列表中找到。

还可以使用switchUser(User)在被视为当前用户的用户之间进行切换。

参数

  • credentials - 代表登录类型的凭证。

  • callback - 登录完成或失败时的回调。 回调将始终发生在调用此方法的同一线程上。

抛出异常

删除提供的全局身份验证侦听器。

参数

  • listener - 要删除的侦听器。

public User removeUser (
User user
)

从此设备中删除用户档案。 如果用户当前已登录,他们将在此过程中注销。 这只是本地更改,不会影响服务器上的用户状态。

参数

  • user - 删除

返回:

已删除的用户。

抛出异常

  • AppException - 如果从用户界面线程调用,或者用户已登录但无法注销。

protected void setNetworkTransport (
OsJavaNetworkTransport transport
)
公开以进行测试。将当前配置的网络传输与提供的网络传输交换。 仅当当前没有网络请求运行时才应执行此操作。
public User switchUser (
User user
)

切换当前用户。当前用户是currentUser()返回的用户。

参数

  • user - 新的当前用户。

抛出异常

后退

io.realm.mongodb