0

MongoDB Realm在后台同步数据,如何获取该领域上次同步的日期时间?希望向用户显示此信息以指示数据是最新的。

有一个 RLMSyncManager 类,但它似乎不包含有关上次同步的任何信息,https: //docs.mongodb.com/realm-sdks/objc/latest/Classes/RLMSyncManager.html

4

1 回答 1

0

领域SyncSession对象有一个addProgressNotification方法https://github.com/realm/realm-cocoa/blob/b606bfddaa0856489561727207e755659faa9a7e/RealmSwift/Sync.swift#L557因此可以在那里添加回调来更新本地日期属性以存储更新的最后同步领域时间。

领域用户对象包含可以通过访问的活动会话列表,user.allSessions替代方法是realm.syncSession

        let realm = realmProvider.realm

        let progressTokenDownload = realm.syncSession?.addProgressNotification(
            for: .download,
            mode: .forCurrentlyOutstandingWork
        ) { progress in
            print(">>> DEBUG: [DCSettingsViewModel:checkRealmSyncingStatus] download", progress.fractionTransferred)
        }

        let progressTokenUpdate = realm.syncSession?.addProgressNotification(
            for: .upload,
            mode: .forCurrentlyOutstandingWork
        ) { progress in
            print(">>> DEBUG: [DCSettingsViewModel:checkRealmSyncingStatus] upload  ", progress.fractionTransferred)
        }

        if let progressTokenUpdate = progressTokenUpdate, let progressTokenDownload = progressTokenDownload {
            progressNotificationTokens.append(progressTokenUpdate)
            progressNotificationTokens.append(progressTokenDownload)
        }
于 2021-08-22T13:46:01.517 回答