0

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/によるチュートリアルに基づく私の例

4

1 に答える 1