【问题标题】:Why does this keep returning error "Object not found" from Heroku/Parse in swift?为什么这会不断从 Heroku/Parse 快速返回错误“找不到对象”?
【发布时间】:2017-04-14 14:50:44
【问题描述】:

我正在尝试从 Heroku/Parse 服务器中删除 username = usernameSelected 的行。选择的用户名不是 nil 并且确实存在于服务器上。似乎没有任何问题,只有“找不到对象”而不是删除整行。

let query = PFQuery(className: "Requests")

query.whereKey("username", equalTo: usernameSelected)
query.limit = 1
query.findObjectsInBackgroundWithBlock({ (objects, error) in
    if error != nil {
    }else {
        if let objects = objects {
            for obj in objects {
                obj.deleteInBackgroundWithBlock({ (success, error) in
                    activityIndicator.stopAnimating()

                    UIApplication.sharedApplication().endIgnoringInteractionEvents()

                    if error != nil {
                       self.alertDisplay("Error", message: error?.userInfo["error"] as! String)
                    }else {
                        self.alertDisplay("", message: "Styles Submitted..! Please wait for your next Style")
                    }
                })
            }
        }
    }
})

【问题讨论】:

  • 哪个块出现了这个错误? findObjects... 还是 deleteInBackground...?如果是第二个,您是否为您删除的所有对象获取它?
  • 想一想:你是如何在这个类/对象上设置 ACL 的?
  • +Lou Franco:deleteInBackground 块,当对象存在时返回错误(Object not found)。
  • +toddg: 什么是 ACL?
  • ACL 是访问控制列表。每个对象都有一个。它们与 CLP(类级别权限)一起工作,以查看谁可以对对象执行什么操作。首先,用户的权限必须通过 CLP,如果他们通过 CLP,它会检查对象的 ACL。您可以限制谁可以找到对象(在不知道 objectId 的情况下进行查询)、获取对象(使用 objectId 获取/查询)、创建新对象、修改对象(保存/销毁)。可能由于您可以找到一个对象,因此您对该对象具有读取权限但没有写入权限。尝试使用主密钥。

标签: swift debugging heroku parse-server


【解决方案1】:
  1. 确保您拥有班级的读写权限

  2. 删除可能会失败,因为在您的类中创建的行的 ACL 只有读取权限。要允许读取和写入权限,在您的 AppDelegate 中的方法“didFinishLaunchingWithOptions”下,您将看到行

让 defaultACL = PFACL();

// 如果您希望所有对象默认为私有,请删除此行。 defaultACL.getPublicReadAccess = true

添加行 --- defaultACL.getPublicWriteAccess = true

这将帮助您创建具有写入权限的所有行,以便将来您可以从客户端删除对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2020-02-27
    • 2021-08-13
    相关资源
    最近更新 更多