连接到 Atlas App Services 后端 - Java SDK
应用客户端是App Services后端的接口。 它提供访问权限身份验证功能和同步管理的访问。
初始化 Realm
在应用程序中使用 Realm 之前,您必须初始化 Realm 库。 您的应用程序应该在每次运行时初始化 Realm 一次。
要初始化Realm库,请为 静态函数提供一个 Androidcontext
Realm.init()
。您可以提供活动、片段或应用程序context
进行初始化,而行为不会有任何差异。您可以在onCreate()
应用程序子类 的 方法中初始化Realm库 以确保每次应用程序运行时仅初始化Realm一次。
Realm.init(this); // context, usually an Activity or Application
Realm.init(this) // context, usually an Activity or Application
提示
在 Android 清单中注册您的应用程序子类
如果创建自己的Application
子类,则必须将其添加到应用程序的AndroidManifest.xml
中才能执行自定义应用程序逻辑。 设置清单应用程序定义的android.name
属性,确保当用户启动您的应用程序时,Android 会先于任何其他类实例化您的Application
子类。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mongodb.example"> <application android:name=".MyApplicationSubclass" ... /> </manifest>
访问应用程序客户端
传递应用的 App ID ,您可以在Realm 用户界面中找到该 ID。
String appID = YOUR_APP_ID; // replace this with your App ID App app = new App(new AppConfiguration.Builder(appID).build());
val appID : String = YOUR_APP_ID // replace this with your App ID val app: App = App(AppConfiguration.Builder(appID).build())
重要
在创建实例之前初始化应用
在创建App
的任何实例之前,您必须使用Realm.init()
初始化应用程序连接。
配置
对于大多数使用案例,您只需要应用程序的 App ID即可连接到App Services。 要更精细地控制应用连接的详细信息,例如连接的自定义超时、用于MongoDB数据访问的编解码器以及用于本地加密的密钥,您可以选择使用AppConfiguration
Builder 来控制App
的详细信息:
String appID = YOUR_APP_ID; // replace this with your App ID App app = new App(new AppConfiguration.Builder(appID) .appName("My App") .requestTimeout(30, TimeUnit.SECONDS) .build());
val appID = YOUR_APP_ID // replace this with your App ID val app: App = App(AppConfiguration.Builder(appID) .appName("My App") .requestTimeout(30, TimeUnit.SECONDS) .build())
您可以创建多个应用客户端实例以连接多个应用。 股票相同 App ID的所有 App客户端实例使用相同的根本的连接。
重要
初始化应用后更改应用配置
在版本 v 10.18.0中进行了更改: urlPrefix
未缓存在应用配置中
初始化 App客户端时,会在内部缓存配置。 尝试在同一进程中关闭并重新打开配置已更改的应用无效。 客户端继续使用缓存的配置。
在Java SDK版本10.18.0及更高版本中, urlPrefix不再缓存在应用配置中。 这意味着您可以更改urlPrefix
,应用客户端将使用更新后的配置。 在早期 SDK 版本中,对缓存的应用配置中的urlPrefix
进行更改无效。