我无法打开领域。我的设置有问题。这是应用程序中的代码:
var configuration = user.configuration(partitionValue: "user=\(user.id)")
configuration.objectTypes = [User.self]
Realm.asyncOpen(configuration: configuration) { [weak self](userRealm, error) in
self!.setLoading(false);
guard error == nil else {
fatalError("Failed to open realm: \(error!)"). ///// here was my error before the edit (I changed the Permission Settings in Sync)
}
错误代码:“致命错误:无法打开领域:错误域=io.realm.unknown代码=89“操作已取消”UserInfo={Category=realm.basic_system,NSLocalizedDescription=操作已取消,错误代码=89”
Mongodb 同步配置的屏幕截图
编辑:
将同步中的权限设置替换为任务跟踪器应用程序中提到的权限设置并使其连接:
编辑:根据 Jay 的建议,配置设置已更改为以下内容。
var configuration = user.configuration(partitionValue: "\(currentUser.id!)")
这是我对用户集合的方案定义:
{
"properties": {
"_id": {
"bsonType": "string"
},
"_partition": {
"bsonType": "string"
},
"name": {
"bsonType": "string"
}
},
"required": [
"_id",
"_partition",
"name"
],
"title": "User"
}
这是我在 Xcode 中的 User 类:
class User: Object {
@objc dynamic var _id: String = ""
@objc dynamic var _partition: String = ""
@objc dynamic var name: String = ""
override static func primaryKey() -> String? {
return "_id"
}
}
编辑:我将通过更新同步权限来建立连接,因此应用程序不会再崩溃。然而,现在我收到这样的消息:
Connection to daemon was invalidated
Signup successful!
Log in as user: y
Login succeeded!
2020-10-25...Sync: Connection[1]: Session[1]: client_reset_config = false, Realm exists = false, async open = false, client reset = falseSync: Connection[1]: Session[1]: client_reset_config = false, Realm exists = false, async open = false, client reset = false
2020-10-25...Sync: Connection[1]: Connected to endpoint '13.54.209.90:443' (from '.....:52139')
2020-10-25...Sync: Connection[1]: Reading failed: End of input
2020-10-25...Sync: Connection[1]: Connection closed due to error```
我不明白上面的代码中的错误“(“无法打开领域:(错误!)”)”没有被触发,但在日志中它说该领域不存在!那么,这是怎么回事?
编辑:这是 mongodb 中的用户表,所以我成功创建了一些用户。
编辑:这是来自 mongodb 的日志
我们可以看到用户 ID 和请求 ID 不一样!我想这两个ID应该是相同的字符串才能进行身份验证,对吗?
我正在按照 Swift 的 mongodb 网页上的任务跟踪器应用程序教程将用户登录添加到我的应用程序。我在这里缺少什么?