在Facebook/Twitter注册之前检查现有用户解析Android SDK
我正在使用Parse Android SDK,在我的注册活动中有两个注册选项。通过twitter和facebook注册 问题是: 如果我使用facebook注册,然后注销,然后再次使用twitter注册,而不是将新的twitter解析用户链接到旧的facebook解析用户,它会创建一个新用户,即使facebook和twitter中使用的电子邮件是相同的 我想要实现的是检查具有相同电子邮件的用户是否存在,如果不存在,则创建新用户,如果他确实存在,则将注册方法(facebook或twitter)与现有解析用户链接 任何帮助都将不胜感激。 谢谢在Facebook/Twitter注册之前检查现有用户解析Android SDK,android,facebook,twitter,parse-platform,parsefacebookutils,Android,Facebook,Twitter,Parse Platform,Parsefacebookutils,我正在使用Parse Android SDK,在我的注册活动中有两个注册选项。通过twitter和facebook注册 问题是: 如果我使用facebook注册,然后注销,然后再次使用twitter注册,而不是将新的twitter解析用户链接到旧的facebook解析用户,它会创建一个新用户,即使facebook和twitter中使用的电子邮件是相同的 我想要实现的是检查具有相同电子邮件的用户是否存在,如果不存在,则创建新用户,如果他确实存在,则将注册方法(facebook或twitter)与现
private void loginWithTwitter(){
signUpProgressDialog.show();
logIn(这是新的LogInCallback(){
@凌驾
公共无效完成(ParseUser用户,parsee异常){
signUpProgressDialog.disclose();
如果(e==null){
if(user==null){
Log.d(标记“哦,用户取消了Twitter登录”);
}else if(user.isNew()){
d(标签“用户注册并通过Twitter登录!”);
StartPrivateActivity(“TWITTER_NEW”);
}否则{
d(标签“用户通过Twitter登录!”);
StartPrivateActivity(“TWITTER_OLD”);
}
}else Log.d(标记“Twitter解析错误”);
}
});
}
私有void loginWithFacebook(){
signUpProgressDialog.show();
列表权限=Arrays.asList(“public_profile”、“email”);
logIn(权限,这个,新的LogInCallback(){
@凌驾
公共无效完成(ParseUser用户,parsee异常){
signUpProgressDialog.disclose();
如果(e==null){
if(user==null){
Log.d(标记“哦,用户取消了Facebook登录”);
}else if(user.isNew()){
d(标签“用户注册并通过Facebook登录!”);
StartPrivateActivity(“FACEBOOK_NEW”);
}否则{
d(标签“用户通过Facebook登录!”);
StartPrivateActivity(“FACEBOOK_OLD”);
}
}else Log.d(标记“Facebook解析错误”);
}
});
}
您可以将用户的电子邮件设置为ParseUser对象中的用户名字段的内容。所以,下一次用户尝试使用相同的用户名注册时,您将收到ParseException,代码为202-“已注册这些用户名和密码的用户”,在这种情况下,您可以调用login()方法。
但在这种情况下,两次会话之间的密码应该保持不变。您有没有解决此问题的方法。我也遇到同样的问题,但找不到任何解决办法
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");
}
});
}