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

3
我正在使用Parse Android SDK,并且在注册活动中有两个注册选项。通过Twitter注册和通过Facebook注册。
问题如下: 如果我使用Facebook注册,然后注销,再次使用Twitter注册,而不是将新的Twitter Parse用户链接到旧的Facebook Parse用户,它会创建一个新用户,即使在Facebook和Twitter中使用的电子邮件相同。
我想要实现的是检查是否存在相同电子邮件的用户,如果不存在则创建新用户,如果存在则将注册方法(Facebook或Twitter)与现有的Parse用户链接起来。
任何帮助都将不胜感激。 谢谢
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");
        }
    });
}

你有解决这个问题的方法吗?我也遇到了同样的问题,但是找不到任何解决方案。 - harshita
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接