3

我正在使用 Parse Android SDK,我的注册活动中有两个注册选项。推特注册和脸书注册。

这就是问题所在:如果我使用 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");
        }
    });
}
4

1 回答 1

0

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

于 2015-01-20T11:41:23.690 回答