Parse.com PFUser ¿Cómo asociar twitter y count de Facebook?

Estoy usando parse.com como back-end de mi aplicación, permite al usuario iniciar session a través de su count de Facebook o Twitter. También tiene la function de vincular twitter / facebook a su count preexistente.

Aquí está el problema:

Si un usuario PFUser session a través de su count de facebook , se crea un nuevo PFUser en la nube. Si el mismo usuario vuelve a PFUser session a través de su count de PFUser se crea otro PFUser en la nube. Ahora, si el usuario quiere vincular su count de facebook con su count de twitter , parse.com responde que "esta count de Twitter ya está conectada a otro usuario".

¿Cómo puedo combinar dos PFUsers aquí? ¿Alguien puede sugerirme un enfoque para resolver este problema?

Lamentablemente, parece que no es posible tener una count de Facebook o Twitter vinculada a más de un PFUser. Además, parece que no es posible combinar dos inputs de PFUser más – Vea la respuesta de Parse aquí .

Lo que puede hacer en su lugar es mantener los datos en la tabla PFUser estrictamente para fines de autorización y mantener el rest de los datos en una nueva class Parse dedicada (por ejemplo, userData, señalado por las inputs de PFUser).

En ese sentido, podrá utilizar varias inputs de PFUser que apunten a la misma input de datos de usuario. Por lo tanto, si tiene una input de PFUser previamente existente vinculada a una count de Twitter específica en el backend de Parse, lo mejor es hacer que el usuario inicie session en ese PFUser específico, y luego señalar esa input a su input de usuario de datos previamente existente.

Sin ver ningún código, parece que estás llamando a PFTwitterUtils logInWithBlock cuando intentas vincular una count de Twitter. Ese sería el enfoque equivocado ya que solo creará un nuevo PFUser en lugar de usar el PFUser existrante creado al iniciar session con Facebook.

Lo que querrá hacer en su lugar es utilizar el método PFTwitterUtils para vincular el PFUser actual con una count de Twitter. La documentation de Parse muestra el siguiente código para hacerlo.

 PFUser *user = [PFUser currentUser]; if (![PFTwitterUtils isLinkedWithUser:user]) { [PFTwitterUtils linkUser:user block:^(BOOL succeeded, NSError *error) { if ([PFTwitterUtils isLinkedWithUser:user]) { NSLog(@"Woohoo, user logged in with Twitter!"); } }]; } 

Puedes hacer una cosa que es:

cuando vincula al usuario actual con otra count de Facebook / Twitter, debe desvincular al usuario en algún momento. Digamos que cuando cierre la session, debe verificar si el usuario actual está vinculado con Facebook / Twitter.

si su usuario actual está vinculado con cualquier otro usuario, debe desvincularlo para que pueda volver a vincular el usuario de Facebook / Twitter con cualquier otro usuario, como este

Para usuario de Facebook:

 if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){ [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){ if(!unlinkError){ // User unlinked }else{ // Erro while unlink user } }]; } 

Para el usuario de Twitter:

 if([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]){ [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){ if(!unlinkError){ // unlink user }else{ // Error while unlink } }]; }