我已经使用iOS开发了一个RealmSwift应用程序。到目前为止这还不错。现在,随着我越来越接近发布到App,我想设置一些云配置,以便能够连接到云数据库,但我只是完全搞糊涂了。
几周前,我把领域云作为一种选择。现在我只看到了MongoDB领域--或者类似的东西。我深入研究了一下,发现有三个组件:领域数据库、领域同步和Mongo。
如果我的理解是正确的,我必须创建一个Atlas集群,我的领域数据库将在其中托管,并能够连接和同步。我说的对吗?
我的主要问题是我不知道如何将它连接到我现有的代码。我不希望用户身份验证或来自MongoDB的任何东西,我有我自己的,我基本上只有一个DB,我想同步和连接到它。因此,目前在我通常使用的代码中:
let realm = try! Realm()
try! realm.write {
...
}如何更新它以使用阿特拉斯云中的MongoDB?我看了他们的“教程”,但我还是太困惑了。
我看到了一个Realm(configuration: Realm.Configuration) init函数,但是如果我要使用这个函数,我应该如何获得一个Realm.Configuration对象?
此外,分区键意味着什么?
非常感谢。
发布于 2020-06-15 22:04:50
你的困惑是有道理的。文档和教程仍然是一项正在进行的工作,而且有点脱节。我认为随着时间的推移,情况会有所改善。
因此,对于完整的教程来说,这不是一个很好的地方,但是这里有一个非常高层次的概述。
指向教程的链接- iOS Swift教程
通过Cocoapods安装
1)在MongoDB控制台中创建集群
2)在该集群中,您正在创建一个领域“应用程序”
3)在这个领域中,你将设置“应用程序”:
您的应用程序将有一个AppId,它可以在阿特拉斯控制台的左边,右边的应用程序名称(这是一个文档按钮,你可以点击复制)。
然后,在您的XCode领域项目中,您将使用cocoapods来安装RealmSwift。
现在请回答你的问题:
如何将其连接到我现有的代码。
添加一个结构,这是到Atlas领域项目的连接字符串。
导入RealmSwift
struct Constants {
// Set this to your Realm App ID found in the Realm UI.
static let REALM_APP_ID = "your app id"
}然后,当您想进行身份验证时,您将执行以下操作
let app = RealmApp(id: Constants.REALM_APP_ID)
app.login(withCredential: AppCredentials(username: username, password: password)) { user, error in一旦您通过身份验证,要访问领域,请使用以下内容
guard let user = app.currentUser() else {
fatalError("Must be logged in to access this view")
}
let realm = try! Realm(configuration: user.configuration(partitionValue: user.identity!))发布于 2020-06-14 16:54:50
除了iOS应用程序中的嵌入式数据库之外,我从来没有使用过领域。如果您需要在服务器端存储某些内容,您应该实现一个API,它可以对您的MongoDB (或您使用的任何数据库)进行写入。将iOS应用程序直接连接到服务器端数据库对我来说似乎是一种反模式。
发布于 2020-06-14 17:01:46
领域同步根据需要连接到Atlas部署,以同步数据。我的理解是,您不需要在代码中直接连接到Atlas。
文档提供了一些信息,下面有几页示例代码。
https://stackoverflow.com/questions/62375536
复制相似问题