Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何保存未使用Parse登录的用户?_Ios_Parse Platform_Mbaas - Fatal编程技术网

Ios 如何保存未使用Parse登录的用户?

Ios 如何保存未使用Parse登录的用户?,ios,parse-platform,mbaas,Ios,Parse Platform,Mbaas,我正在开发一款需要能够搜索合作伙伴的应用程序。显然,为用户保存不是问题,但我不确定为其他用户修改数据的最佳方式是什么。可能是向其他用户发送一条消息,该消息在登录时自动读取并添加关系状态 这是我所拥有的-它从所有搜索游戏的玩家中找到一个随机玩家,并将他们添加到“合作伙伴”关系中。现在,我如何让其他用户也这样做 - (IBAction)searchForPlayer:(id)sender { [self.currentUser setObject:@0 forKey:@"searchi

我正在开发一款需要能够搜索合作伙伴的应用程序。显然,为用户保存不是问题,但我不确定为其他用户修改数据的最佳方式是什么。可能是向其他用户发送一条消息,该消息在登录时自动读取并添加关系状态

这是我所拥有的-它从所有搜索游戏的玩家中找到一个随机玩家,并将他们添加到“合作伙伴”关系中。现在,我如何让其他用户也这样做

- (IBAction)searchForPlayer:(id)sender {


     [self.currentUser setObject:@0 forKey:@"searching"];

    PFQuery *findPotential = [PFQuery queryWithClassName:@"_User"];
    [findPotential whereKey:@"searching" equalTo:@1];
    [findPotential findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

        int partnerNum = arc4random_uniform(objects.count);
        PFUser *newPartner = [objects objectAtIndex:partnerNum];

        if(error){
            NSLog(@"Error!");
        }

        else {

            if (objects.count == 0|| [newPartner.objectId isEqualToString:self.currentUser.objectId]) {
                NSLog(@"None found");
                [self.currentUser setObject:@1 forKey:@"searching"];
            }

            else {

                PFRelation *partners = [self.currentUser relationForKey:@"partners"];
                [partners addObject:newPartner];
                NSLog(@"Partner is: %@", newPartner.username);
                [self.currentUser setObject:@0 forKey:@"searching"];
            }
        }
    }];

[self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if(error){
        NSLog(@"Error!");
    }
  }];
}

你永远都不想做这种客户端的事情。出于安全目的,用户不能更改其他用户。使用云代码。调用一个函数,并在该函数中验证是否确实要执行此操作,然后使用主密钥查询和更改其他对象

您可以将Objective-C查询/示例转换为JavaScript,将其放在接受一些参数的云函数中,并将其放在顶部:

Parse.Cloud.useMasterKey();
或者,您可以为特定方法单独提供主密钥,例如:

object.save(null, { useMasterKey: true }).then(function(object) { ...

阅读这里的云代码文档:

在你回答这个问题之前,我刚刚在解析论坛上看到了你对一个问题的答案。在你知道之前,你就帮了我:P所以将客户端代码转移到云代码部分来查找随机播放器可能也是一个更好的主意?学习如何做到这一点的最佳方法是什么?不幸的是,我不懂javascript。我建议浏览javascript文档、云代码文档,并尝试将您已有的转换为不同的语言。看看你遇到了什么问题,当你陷入困境时再问更多的问题。