更新:简而言之,我想使用Master密钥,因为我需要用当前用户编写其他用户对象,但我不想覆盖所有安全性,我只想在一个中使用它功能。 this question中接受的答案提供了一个非常好的起点,但是我无法使其发挥作用。这是这个问题中的最后一个代码块。
我有两个独立的功能。第一个是纯粹的objective-c,它会从currentUser
的{{1}}中删除用户。在我将不同的CloudCode功能添加到不同的视图控制器之前,它运行良好没有任何问题。 CloudCode函数使用主密钥并将firstRelation
添加到currentUser
的{{1}}&将otherUser
添加到sampleRelation
的{{1}} otherUser
和currentUser
是sampleRelation
类中的两个不同列。
问题是当我从firstRelation
的{{1}}(当前用户)删除用户时,我的应用程序崩溃了,因为用户必须通过logIn或signUp进行身份验证。实际上我不理解这一点,因为在这种情况下我用sampleRelation
而不是其他用户编写User
,所以它必须没有任何问题(并且在CloudCode之前工作)。
我几乎可以肯定,因为我正在使用CloudCode的主密钥,但我不知道如何避免它。其他所有内容仍然有效,例如我可以使用currentUser
上传图片。
以下是我用于CloudCode的代码,JavaScript对我来说完全不为人知,也许有人会看到导致问题的原因。
firstRelation
当我尝试删除对象时崩溃:
currentUser
这是Fosco从另一个问题回答的最新尝试。它工作,但与早期版本相同。
currentUser
答案 0 :(得分:1)
快速浏览一下,看起来它失败了,因为你正试图在迭代时从数组中删除一个对象。我知道这会导致Objective C崩溃,无论你是否使用Parse对象。
尝试重写此细分:
for (PFUser *friendName in self.friends) {
if ([friendName.objectId isEqualToString:user.objectId]){
[self.friends removeObject:friendName];
break; // to exit a loop
}
}
对于这样的事情:
NSMutableArray *tempArray = [[NSMutableArray alloc]init];
for (PFUser *friendName in self.friends) {
if (![friendName.objectId isEqualToString:user.objectId]) {
[tempArray addObject:friendName];
}
self.friends = [NSArray arrayWithArray:tempArray];
同样,只有快速浏览所以不是100%,如果这是你的问题,但它看起来像它,让我知道它是否有帮助