ios - Swift Parse - 使用 PFQuery 或 QueryWithSubqueries 函数

标签 ios swift parse-platform

我正在查看 Parse 文档,如果提供的用户名和电子邮件已注册(使用)或未注册,我想使用这个有趣的功能来验证注册用户。该文档提供了以下示例:

var lotsOfWins = PFQuery(className:"Player")
lotsOfWins.whereKey("wins", greaterThan:150)

var fewWins = PFQuery(className:"Player")
fewWins.whereKey("wins", lessThan:5)

var query = PFQuery.orQueryWithSubqueries([lotsOfWins, fewWins])
query.findObjectsInBackgroundWithBlock {
  (results: [PFObject]?, error: NSError?) -> Void in
  if error == nil {
    // results contains players with lots of wins or only a few wins.
  }
}

我的版本是:

/*Check username and email not taken*/
        let usernameInputCheck = PFQuery(className:"_User")
        usernameInputCheck.whereKey("appUsername", equalTo: self.usernameTxtField.text!)

        let emailInputCheck = PFQuery(className:"_User")
        emailInputCheck.whereKey("email", equalTo:self.emailTxtField.text!)

        let query = PFQuery.orQueryWithSubqueries([usernameInputCheck, emailInputCheck])
        query.findObjectsInBackgroundWithBlock {
            (results: [PFObject]?, error: NSError?) -> Void in
            if error == nil {
                // results contains players with lots of wins or only a few wins.
            }
        }

我希望能够检查电子邮件或用户名是否已被占用,如果是,则设置一个标志,以便我可以向用户设置消息,例如:“提供的电子邮件已注册”或“用户名不可用,请尝试一个不同的”。

提前感谢您的帮助。

更新:这是 Parse 文档的链接:https://parse.com/docs/ios/guide#queries-compound-queries

最佳答案

这里有一些 objective-c 可以解决这个问题,您可以轻松地将其适应 Swift。

PFQuery * nameQuery = [PFQuery queryWithClassName:@"user"]
[nameQuery whereKey:"username" equalTo:username];
PFQuery * emailQuery = [PFQuery queryWithClassName:@"user"];
[emailQuery whereKey:"email" equalTo:email];


PFQuery * query = [PFQuery orQueryWithSubqueries:@[nameQuery, emailQuery]

        [query countObjectsInBackgroundWithBlock:^(int number, NSError *error) {
          if(number > 0) {
            //Email address OR username is already in use. 
         }
        }];

关于ios - Swift Parse - 使用 PFQuery 或 QueryWithSubqueries 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910506/

相关文章:

swift - 如何查找 UIView 在代码中创建的位置 - swift - 以编程方式

ios - 解析 getDataInBackgroundWithBlock 未按顺序获取

根域上的 https 托管

ios - Flutter - 代码签名 "App.framework"失败

ios - 如何从 textView 制作多页 PDF?

html - UIWebView 从 <a href=myFileName.myFileType> 下载

json - 在 Swift 3 中正确解析 JSON

快速增量 Int!不工作

javascript - 从 Parse.com 的 webhook 中包含的 ID 检索客户电子邮件

ios - unregisterForRemoteNotifications 仍然在设置中显示 "Allow Notifications"