我试图通过在parse中创建的objectId来获取用户。 之后,通过递增特定键来更新该对象。在这种情况下"投票"
我尝试了以下代码,并成功获取对象然后将其强制转换为PFUser
进行更新,但在后台保存期间抛出错误,声称用户必须登录或注册已经有那个用户?
感谢您的帮助。
var sender = self.mObject["sender"] as PFUser
var senderObjId = sender.objectId
println(senderObjId) //prints sender user object id
//query the user
var query = PFUser.query()
query.getObjectInBackgroundWithId(senderObjId, block: { (object: PFObject!, error: NSError!) -> Void in
let user : PFUser = object as PFUser
user.incrementKey("votes")
user.saveEventually({ (success: Bool!, error: NSError!) -> Void in
println(success)
})
})
收到特定错误:
"NSInternalInconsistencyException" with reason "User cannot be saved unless `they have been authenticated via logIn or signUp":`
答案 0 :(得分:0)
您尚未使用要修改的帐户登录。 您只能编辑当前帐户,而不能编辑PFUser表中的任何帐户。 这就是我在解析时发现的:
用户对象的安全性
默认情况下,PFUser类是安全的。存储在PFUser中的数据可以 只有该用户修改。默认情况下,仍可以读取数据 任何客户。因此,一些PFUser对象是经过身份验证的,可以 修改,而其他是只读的。
具体来说,您无法调用任何保存或删除 除非PFUser是使用经过验证的方法获得的, 像logIn或signUp。这确保了只有用户才能改变他们的 自己的数据。
请参阅this如何登录。