如何检查用户名/电子邮件是否已存在android解析

时间:2015-11-19 04:24:42

标签: android parse-platform

我到处搜索,但没有找到任何关于如何检查解析数据库中的用户名/电子邮件地址的信息。我在parse.com论坛上的互联网上找到了一些答案,但他们并不清楚。 谢谢,如果你能提供帮助。 如果在某处有答案,请注释而不是标记,以便我可以将其删除。

2 个答案:

答案 0 :(得分:4)

我认为如果我正确理解你的问题,这将做你需要的事情:

final ParseQuery<ParseUser> emailQuery = ParseUser.getQuery();
            emailQuery.whereEqualTo("email", emailAddress);
            final ParseQuery<ParseUser> usernameQuery = ParseUser.getQuery();
            usernameQuery.whereEqualTo("email", username);
            List<ParseQuery> queries = new ArrayList<>();
            queries.add(emailQuery);
            queries.add(usernameQuery);
            final ParseQuery<ParseUser> query = ParseQuery.or(queries);
            query.findInBackground(new FindCallback<ParseUser>() {
                public void done(List<ParseUser> results, ParseException e) {
                    // results has the list of users that match either the email address or username
                }
            });

https://www.parse.com/docs/android/guide#queries-compound-queries

或者你可以这样做:

user.signUpInBackground(new SignUpCallback() {
            public void done(ParseException e) {
                if (e == null) {
                    // yippee!!
                } else {

                    switch (e.getCode()) {
                        case ParseException.USERNAME_TAKEN: {
                            // report error
                            break;
                        }
                        case ParseException.EMAIL_TAKEN: {
                            // report error
                            break;
                        }
                        default: {
                            // Something else went wrong
                        }
                    }
                }
            }
        });

答案 1 :(得分:-1)

尝试此操作以检查解析中的数据。我希望这对你有所帮助。

// this is create query of your parse table
ParseQuery<ParseObject> query = new ParseQuery<>(your prars tableName);
    query.whereEqualTo(YourParseColumeNameEmail, yourEmail);
    query.whereEqualTo(YourParseColumeNamePassword, yourPassword);

    // this is for doing in background
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> scoreList, ParseException e) {
            if (e == null) {
                if (scoreList.size() == 0) {
                   // if there is no data like your email and password then it,s come here
                } else {
                    // if there is data like your email and password then it,s come here
                }
            } else {
                Log.d("score", "Error: " + e.getMessage());
            }
        }
    });
相关问题