繁体   English   中英

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

[英]How to save user that is not logged in with Parse?

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

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

- (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,将其放在接受一些参数的Cloud Function中,然后将其放在顶部:

Parse.Cloud.useMasterKey();

或者,您可以分别为特定方法提供主密钥,例如:

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

在此处阅读Cloud Code文档: https//parse.com/docs/cloud_code_guide

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM