Parse.com PFUser链接Twitter和Facebook帐户?

我使用parse.com作为我的应用程序的后端,它使用户能够通过他的Facebook或Twitter帐户login。 此外,它还具有将twitter / facebook链接到其原有帐户的function。

这是问题:

如果用户通过他的facebook帐户login,则在云上创build新的PFUser 。 如果同一用户再次通过他的twitter帐户login,则在云上创build另一个PFUser 。 现在,如果用户想要将他的facebook帐户与他的twitter帐户parse.com起来, parse.com回复“这个twitter帐户已经连接到另一个用户”。

我如何在这里合并两个PFUsers ? 任何人都可以build议我解决这个问题的方法?

遗憾的是,似乎不可能有一个Facebook或Twitter帐户链接到多个PFUser。 此外,似乎不可能再合并两个更多的PFUser条目 – 请参阅Parse的答案 。

您可能想要做的是将数据严格保存在PFUser表中,以便进行授权,并将其余数据保留在新的专用Parse类(例如userData,由PFUser条目指向)中。

从这个意义上说,你将能够使用多个PFUser条目指向相同的userData条目。 因此,如果以前存在PFUser条目链接到Parse后端中的特定Twitter帐户,则最好使用户login到该特定的PFUser,然后将该条目指向先前存在的userData条目。

没有看到任何代码,这听起来像你试图链接一个Twitter帐户时调用PFTwitterUtils logInWithBlock 。 这将是错误的方法,因为它只会创build一个新的PFUser,而不是使用通过Facebooklogin创build的existring PFUser。

你想要做的是使用PFTwitterUtils方法来链接当前的PFUser与一个Twitter帐户。 parsing文档显示下面的代码来做到这一点。

 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!"); } }]; } 

你可以做一件事是:

当您将当前用户与其他任何Facebook / Twitter帐户关联时,您需要在某个时间点取消与用户的链接。 让我们说,当你注销时,你需要检查当前用户是否与Facebook / Twitter链接?

如果您当前的用户与任何其他用户链接,则需要取消链接,以便您可以再次将Facebook / Twitter用户与任何其他用户链接,如此

对于Facebook用户:

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

对于Twitter用户:

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