标签: mongodb-realm

仅对非高级用户禁用领域同步

我正在创建一个 iOS 应用程序,我打算仅向高级用户提供跨设备数据同步功能。我发现Realm Sync是一个很好的解决方案,可以保持本地设备上数据库和云 MongoDB Atlas 同步。但是,我不想将非高级用户的数据同步到云数据库。

我列出了几种我能想到的方法来防止非高级用户触发领域同步,但我不确定解决此问题的最佳方法是什么。

  • 通过利用同步权限来防止同步- 我可以存储高级用户 ID 列表,并且只向这些用户授予同步权限。

     {
       "%%user.id": [
          "5f4863e4d49bd2191ff1e623",
          "5f48640dd49bd2191ff1e624",
          "5f486417d49bd2191ff1e625"
       ]
     } 
    
    Run Code Online (Sandbox Code Playgroud)
  • 在客户端配置 Realm 对象,即如果用户是高级用户,则仅允许所有 Realm 对象/模型。

     // Get a configuration to open the synced realm.
     var configuration = user.configuration(partitionValue: "user=\(user.id)")
     // For non-premium user it would be [User.self]
     configuration.objectTypes = [User.self, Project.self] 
     Realm.asyncOpen(configuration: configuration) { [weak self](result) in /*...*/ }
    
    Run Code Online (Sandbox Code Playgroud)

我正在寻找解决此问题的见解/推荐方法。

编辑

我还有一些关于以不同方式处理两种用例的其他问题 - 非高级用例仅打开本地Realm(),高级用例则使用Realm.asyncOpen().

  1. 当现有用户切换到高级订阅时如何处理用例?打电话就Realm.asyncOpen()足够了还是需要做任何特殊处理?
  2. 我计划User为所有用户(高级+非高级)同步所有(集合中的自定义文档)记录。我的猜测是我应该为我的所有内容打开一个普通的领域,并仅使用[User.self]配置中的对象来同步领域。

realm mongodb ios mongodb-realm

7
推荐指数
1
解决办法
1132
查看次数

MongoDB Realm 功能可扩展吗?

我对 MongoDB 还很陌生。我所处的场景是系统可以多次同时调用函数。

我浏览了mongoDB Atlas 函数文档,没有找到任何涉及可扩展性或并发问题的内容。

单个函数可以并行调用多次吗?例如:三个不同的请求试图调用同一函数,这三个请求将被一一处理或并行处理。

mongodb mongodb-atlas mongodb-realm

7
推荐指数
1
解决办法
130
查看次数

由于 RealmSwift 模型更改,Xcode 预览版崩溃

我正在使用 SWIFTUI、RealmSwift 和 Xcode 12.4 开发一个应用程序 随着开发,Realm 数据模型发生变化,例如。有些值被删除,有些值被添加......

当我对数据模型进行更改时,我只需删除设备上的应用程序并重新安装它,以避免因领域迁移问题而导致崩溃。现在的问题是,Xcode Preview 由于同样的迁移问题而崩溃,我不知道如何为 Xcode Preview 进行全新的重新构建。

下面是 Xcode 给我的 DiagnosticReports。

由于以下错误,需要迁移:

  • 属性“A”已被删除。
  • 已添加属性“B”。

领域迁移用于预览?这没有道理!

我尝试清理构建、删除派生数据、重新启动......但没有运气。应该有某种方法来处理预览提供程序的领域模型更改。

请有人指导我该怎么做才能恢复我的预览。

realm ios swiftui mongodb-realm xcode12

4
推荐指数
1
解决办法
793
查看次数

标签 统计

mongodb-realm ×3

ios ×2

mongodb ×2

realm ×2

mongodb-atlas ×1

swiftui ×1

xcode12 ×1