Mongo Realm のユーザー コレクション (チャット アプリ用) 内に埋め込まれた「会話」オブジェクトに追加しようとしています。ユーザー アカウントの作成時に「デフォルト」の会話を作成して、すべてのユーザーが少なくとも 1 つの会話のメンバーになり、他のユーザーを追加できるようにしたいと考えています。
アプリは現在、電子メール/パスワード認証プロセスを使用して、バックエンドで Realm のトリガーと関数を介してユーザー コレクションを更新します。
私のクラスは Swift で次のように定義されています。
@objcMembers class User: Object, ObjectKeyIdentifiable {
dynamic var _id = UUID().uuidString
dynamic var partition = "" // "user=_id"
dynamic var userName = ""
dynamic var userPreferences: UserPreferences?
dynamic var lastSeenAt: Date?
var teams = List<Team>()
dynamic var presence = "Off-Line"
var isProfileSet: Bool { !(userPreferences?.isEmpty ?? true) }
var presenceState: Presence {
get { return Presence(rawValue: presence) ?? .hidden }
set { presence = newValue.asString }
}
override static func primaryKey() -> String? {
return "_id"
}
@objcMembers class Conversation: EmbeddedObject, ObjectKeyIdentifiable {
dynamic var id = UUID().uuidString
dynamic var displayName = ""
dynamic var unreadCount = 0
var members = List<Member>()
}
したがって、私の現在の考えでは、ログインしているユーザーを更新する必要があると思われる次のように Swift でコーディングする必要がありますが、残念ながらこれを正しく行うことはできません。
// Open the default realm
let realm = try! Realm()
try! realm.write {
let conversation = Conversation()
conversation.displayName = "My Conversation"
conversation.unreadCount = 0
var user = app.currentUser
let userID = user.id
let thisUser = User(_id: userID)
realm.add(user)
}
私のコードのどこが間違っているのか、誰でも見つけてもらえますか?
何時間も Google に費やしましたが、本当に明白な何かが欠けています! 私はかなりの .NET 経験と SQL を持っていますが、新しい世界への変換に苦労しています!
私は NoSQL データベースと SwiftUI に関して初心者であり、多くの Google の例を見て自分の道を見つけようとしています。Andrew Morgan https://developer.mongodb.com/how-to/building-a-mobile-chat-app-using-realm-new-way/によるチュートリアルに基づく私の例