为 Realm Cloud 中的所有领域重置架构

Reset schema for all Realms in Realm Cloud

有什么方法可以完全从我的 Realm Cloud 中删除所有内容,包括现有的模式定义?

我想,你可以检查这个link。

https://forum.realm.io/t/is-it-possible-to-reset-the-default-realm-without-creating-a-new-instance/1466

这个解决了我的领域数据库问题并且可以重置所有模式

希望效果好!

有一种方法可以从领域对象服务器中删除领域。

这是我在 Realm Forums Post

上收集的信息

这是 official docs 的 link。

不过这非常重要。我正在 linking 的文档是针对 Docs 3.0 的。自托管似乎即将消失,因此 3.16 文档不再包含此信息。

有两个步骤

Remove server files
Remove all local files

这两项都必须完成,否则 Realm 将尝试重新同步自身,您的数据将永远不会消失。

第一个函数删除一个 Realm Cloud 实例,如果成功,则删除本地领域文件。

//
//MARK: - delete database
//
func handleDeleteEverything() {
    let realm = RealmService //Singleton that returns my realm cloud
    try! realm.write {
        realm.deleteAll()
    }

    guard let currentUser = SyncUser.current else {return}
    let adminToken = currentUser.refreshToken!

    let urlString = "https://your_realm.cloud.realm.io" //from RealmStudio upper right corner
    let endPoint = "\(urlString)/realms/files/realm_to_delete"
    let url = URL(string: endPoint)
    var request = URLRequest(url: url!)
    request.httpMethod = "DELETE"
    request.addValue(adminToken, forHTTPHeaderField: "Authorization")

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let err = error {
            print("err = \(err.localizedDescription)")
            return
        }

        print("Realm has been deleted")
        self.deleteLocalRealmFiles() //remove local files
    }
    task.resume()
}

然后是删除本地文件的功能。此功能与 Realm 论坛 post 上出现的功能略有不同,在 Realm 4.2

中添加了此功能
try Realm.deleteFiles(for: config)

以及调用它的函数

func deleteLocalRealmFiles() {

    do {
        let config = Realm.Configuration.defaultConfiguration
        let isSuccess = try Realm.deleteFiles(for: config)
        if isSuccess == true {
            print("local files were located and deleted")
        } else {
            print("no local files were deleted, files were not found")
        }

    } catch let error as NSError {
        print(error.localizedDescription)
    }
}