Realm Object Server Swift,更改领域的默认权限

时间:2017-10-05 14:06:01

标签: swift realm realm-mobile-platform realm-object-server

我创建了一个带有管理员帐户的领域,当我查看我的仪表板时,我的领域就在那里。它的所有者专栏是空白的吗?这是正常的吗?因为我用我的管理员帐户打开了同步域。

我的主要问题是,在默认权限中它表示“无法访问”。我试图让所有用户都有权在下面显示的域中编写:

SyncUser.logIn(with: admin, server: serverURL) { (user, error) in

        let permission = SyncPermissionValue(realmPath: "realm://myServerIp/swipeItApp/", username: "*", accessLevel: .write)

        user?.applyPermission(permission, callback: { (error) in

            if error != nil {

                print(error?.localizedDescription)

            } else {

                print("success")

            }

        })

    }

但不会出现错误或成功。我的代码有什么问题?谢谢!

1 个答案:

答案 0 :(得分:3)

感谢您使用Realm。

您没有看到回调的原因是您直接在<ul class="c-rating"> <li class="c-rating__item is-active left" data-index="0"></li> <li class="c-rating__item is-active" data-index="1"></li> <li class="c-rating__item is-active left" data-index="2"></li> <li class="c-rating__item is-active" data-index="3"></li> <li class="c-rating__item is-active left" data-index="4"></li> <li class="c-rating__item is-active" data-index="5"></li> <li class="c-rating__item is-active left" data-index="6"></li> <li class="c-rating__item" data-index="7"></li> <li class="c-rating__item left" data-index="8"></li> <li class="c-rating__item" data-index="9"></li> </ul> 回调中运行applyPermission()方法。 logIn()方法必须在具有活动运行循环的线程上运行,并且applyPermission()回调在没有由后台队列管理的运行循环的线程上运行。

要解决此问题,请使用logIn()将代码分发回主队列:

DispatchQueue.main.async

我们认为在此用例中使用SyncUser.logIn(with: admin, server: serverURL) { (user, error) in let permission = SyncPermissionValue(realmPath: "realm://myServerIp/swipeItApp/", username: "*", accessLevel: .write) DispatchQueue.main.async { user?.applyPermission(permission, callback: { (error) in if error != nil { print(error?.localizedDescription) } else { print("success") } }) } } 需要设计错误,并且将改变DispatchQueue.main.async在我们即将推出的Realm 3.0.0版本中的工作方式,以便在主队列上运行回调默认。因此,如果您在发布后升级到Realm 3.0.0,则不再需要使用上面详述的解决方法;您的原始代码应该按原样运行。