Sto utilizzando parse in un'app per iOS e ci sono due modi di iscrizione, sia tramite e-mail/password o login Facebook.Come unire un utente registrato su Facebook con un utente esistente registrato con la stessa e-mail
Il problema si verifica quando un utente si registra utilizzando la sua email/password, quindi effettua il logout e tenta di registrarsi utilizzando il suo account Facebook che ha la stessa email.
Sto usando [PFFacebookUtils logInInBackgroundWithReadPermissions:block:
per l'iscrizione a Facebook che crea un nuovo oggetto utente nella tabella Users
in Parse
Ora ho due record per lo stesso utente e non posso aggiornare il record che contiene le informazioni di Facebook con l'email dell'utente perché Parse non consente email duplicate
Quindi quale dovrebbe essere la soluzione migliore per risolvere questo problema?
UPDATE
Ho usato la soluzione @kRiZ il login utilizzando il codice Facebook pianura allora o creare un nuovo utente o collegare l'utente con i dati di Facebook
- (void)loginWithFacebookWithSuccessCallback:(APISuccessCallback)successCallback
andFailureCallback:(APIFailureCallback)failureCallback {
// Login PFUser using Facebook
NSArray *permissionsArray = @[@"public_profile", @"email"];
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions: permissionsArray handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
failureCallback(error);
} else {
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?fields=id,first_name,last_name,email,gender" parameters:nil];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id fbResult, NSError *error) {
if (!error) {
NSString *email = result[@"email"];
User *existingUser = [self getUserByEmail:email];
if (existingUser == nil) {
[self signUpNewUserWithEmail:email];
} else {
// Need to set the current user to existingUser
}
[self linkCurrentWithAccessToken:result.token
successCallback(@{RESULT:RESULT_OK});
} else {
failureCallback(error);
}
}];
}
}];
}
Ora il problema è quello di assegnare il [PFUser currentUser] per l'utente esistente nel caso esista già
è incredibilmente difficile da risolvere questo problema. – Fattie
ho lo stesso problema .... hai finito per risolvere completamente? ... if so ... how – lozflan
Quando si chiama '[self signUpNewUserWithEmail: email];' non è necessario passare una password? Ma in questo caso non c'è password in quanto l'utente ha effettuato l'accesso tramite Facebook? –