类应用
在此页面上
io.realm.mongodb
应用程序是与MongoDB Realm 应用程序交互的主要客户端入口点。该应用程序可用于:
通过身份验证提供程序( io.realm.mongodb.auth.ApiKeyAuth 、 EmailPasswordAuthImpl )注册用户并执行各种与用户相关的操作
使用 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 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()
构造函数
构造函数和描述 |
---|
构造函数,用于根据给定的AppConfiguration创建应用程序。 |
嵌套类摘要
修饰符和类型 | 类和描述 |
---|---|
public static | |
public static interface |
字段摘要
修饰符和类型 | 字段和描述 |
---|---|
针对MongoDB Realm执行网络请求时使用的线程池。此池仅出于测试目的而公开,在队列非空时替换它将导致未定义的行为。 |
方法摘要
修饰符和类型 | 方法和说明 |
---|---|
public void | 设置全局身份验证侦听器,该侦听器将收到有关登录和注销等用户事件的通知。 |
公共 Map | allUsers () 返回所有处于User.State.LOGGED_IN或User.State.LOGGED_OUT 状态的已知用户。 |
公共用户 | currentUser () 返回当前已登录且仍然有效的用户。 |
公共布尔值 | 如果两个应用程序引用相同的AppConfiguration.getAppId() ,则它们被认为是平等的,并将股票其根本的状态。 |
返回此应用的配置对象。 | |
返回一个包装器,用于与与使用Credentials.Provider.EMAIL_PASSWORD身份提供商创建或登录的用户相关的功能进行交互。 | |
公共函数 | 返回一个函数管理器,用于使用自定义编解码器注册表调用Realm应用的Realm函数,以对参数和结果进行编码和解码。 |
公共函数 | 返回用于调用 Realm 应用的 Realm 函数的函数管理器。 |
公共同步 | getSync () 返回管理正在进行的Realm Sync会话的Sync实例,该会话在本地和与此应用关联的远程Realm应用之间同步数据。 |
公共整型 | hashCode () |
公共用户 | 以使用与身份验证提供者关联的给定档案的用户身份登录。 |
以使用与身份验证提供者关联的给定档案的用户身份登录。 | |
public void | 删除提供的全局身份验证侦听器。 |
公共用户 | 从此设备中删除用户档案。 |
protected void | 暴露以进行测试。 |
公共用户 | 切换当前用户。 |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
、hashCode
、equals
、clone
、toString
、notify
、notifyAll
、wait
、wait
、wait
、finalize
字段详细信息
NETWORK_POOL_EXECUTOR
针对MongoDB Realm执行网络请求时使用的线程池。此池仅出于测试目的而公开,在队列非空时替换它将导致未定义的行为。
构造函数详细信息
方法详细信息
addAuthenticationListener
设置全局身份验证监听器,该监听器将收到有关登录和注销等用户事件的通知。对身份验证监听器的回调将在用户界面线程上进行。 参数
抛出异常
|
allUsers
currentUser
public User currentUser () |
---|
返回当前已登录且仍然有效的用户。当用户注销或用户的刷新令牌过期或被撤销时,该用户将失效。 如果有两个或更多用户登录,则此方法将返回最后一个有效用户。 返回: 已登录且仍然有效的当前用户。 |
等于
getConfiguration
public AppConfiguration getConfiguration () |
---|
返回此应用的配置对象。 返回: 此应用程序的配置。 |
getEmailPassword
public EmailPasswordAuth getEmailPassword () |
---|
返回一个包装器,用于与与使用Credentials.Provider.EMAIL_PASSWORD身份提供商创建或登录的用户相关的功能进行交互。 返回: 用于与Credentials.Provider.EMAIL_PASSWORD身份提供商交互的包装器。 |
getFunctions
返回一个函数管理器,用于使用自定义编解码器注册表调用Realm应用的Realm函数,以对参数和结果进行编码和解码。 |
返回用于调用Realm应用的Realm函数的函数管理器。这将使用应用的默认编解码器注册表对参数和结果进行编码和解码。 |
getSync
hashCode
login
以具有与凭证身份验证提供者关联的给定档案的用户身份登录。登录的用户成为当前用户。 其他应用功能代表当前用户。 如果已经存在当前用户,则该用户仍处于登录状态,并且可以在allUsers()返回的列表中找到。 还可以使用switchUser(User)在被视为当前用户的用户之间进行切换。 参数
返回: 代表登录用户的User 。 抛出异常
|
loginAsync
以具有与凭证身份验证提供者关联的给定档案的用户身份登录。登录的用户成为当前用户。 其他应用功能代表当前用户。 如果已经存在当前用户,则该用户仍处于登录状态,并且可以在allUsers()返回的列表中找到。 还可以使用switchUser(User)在被视为当前用户的用户之间进行切换。 参数
抛出异常
|
removeAuthenticationListener
删除提供的全局身份验证侦听器。 参数
|
removeUser
从此设备中删除用户档案。 如果用户当前已登录,他们将在此过程中注销。 这只是本地更改,不会影响服务器上的用户状态。 参数
返回: 已删除的用户。 抛出异常
|
setNetworkTransport
公开以进行测试。将当前配置的网络传输与提供的网络传输交换。 仅当当前没有网络请求运行时才应执行此操作。 |
switchUser
切换当前用户。当前用户是currentUser()返回的用户。 参数
抛出异常
|