在Facebook / Twitter注册Parse Android SDK之前检查现有用户

时间:2015-01-19 11:48:25

标签: android facebook twitter parse-platform parsefacebookutils

我正在使用Parse Android SDK,我的注册活动中有两个注册选项。通过Twitter注册并通过facebook注册。

这是问题所在: 如果我使用Facebook注册然后注销然后再次使用Twitter注册,而不是将新的Twitter解析用户链接到旧的Facebook解析用户,它会创建一个新用户,即使在facebook和twitter中使用的电子邮件都是相同的。

我想要实现的是检查是否存在具有相同电子邮件的用户然后创建新用户,如果他确实存在,则将注册方法(facebook或twitter)与现有解析用户链接。

非常感谢任何帮助。 感谢

private void loginWithTwitter() {
    signUpProgressDialog.show();
    ParseTwitterUtils.logIn(this, new LogInCallback() {
        @Override
        public void done(ParseUser user, ParseException e) {
            signUpProgressDialog.dismiss();
            if(e==null) {
                if (user == null) {
                    Log.d(TAG, "Uh oh. The user cancelled the Twitter login.");
                } else if (user.isNew()) {
                    Log.d(TAG, "User signed up and logged in through Twitter!");
                    startAppropriateActivity("TWITTER_NEW");
                } else {
                    Log.d(TAG, "User logged in through Twitter!");
                    startAppropriateActivity("TWITTER_OLD");
                }
            }else Log.d(TAG,"Twitter Parse Error");
        }
    });
}

private void loginWithFacebook() {
    signUpProgressDialog.show();
    List<String> permissions = Arrays.asList("public_profile", "email");
    ParseFacebookUtils.logIn(permissions, this, new LogInCallback() {
        @Override
        public void done(ParseUser user, ParseException e) {
            signUpProgressDialog.dismiss();
            if(e==null) {
                if (user == null) {
                    Log.d(TAG, "Uh oh. The user cancelled the Facebook login.");
                } else if (user.isNew()) {
                    Log.d(TAG, "User signed up and logged in through Facebook!");
                    startAppropriateActivity("FACEBOOK_NEW");
                } else {
                    Log.d(TAG, "User logged in through Facebook!");
                    startAppropriateActivity("FACEBOOK_OLD");
                }
            }else Log.d(TAG,"Facebook Parse Error");
        }
    });
}

1 个答案:

答案 0 :(得分:0)

您可以将用户的电子邮件设置为ParseUser对象中用户名字段的内容。因此,下次用户尝试使用相同的用户名进行注册时,您将收到代码为202的ParseException - &#34;已注册这些用户名和密码的用户&#34;在这种情况下,您可以调用login()方法。 但在这种情况下,密码应该在两个会话之间保持不变。