PFLogInViewController错误 - 在使用Parse注销后无法登录Facebook

时间:2015-01-05 23:14:30

标签: ios iphone facebook parse-platform

我正在使用PFLogInViewController登录到第一次成功运行的facebook -

- (void)logInViewController:(PFLogInViewController *)controller
           didLogInUser:(PFUser *)user {
if([PFFacebookUtils isLinkedWithUser:user]){
    FBRequest *request = [FBRequest requestForMe];
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        NSDictionary *userData = (NSDictionary *)result;

        NSString *facebookID = userData[@"id"];
        NSString *name = userData[@"name"];
        NSString *location = userData[@"location"][@"name"];
        NSString *gender = userData[@"gender"];
        NSString *birthday = userData[@"birthday"];
        NSString *relationship = userData[@"relationship_status"];

        [user setObject:userData[@"id"] forKey:@"fbId"];
        [user setObject:userData[@"name"] forKey:@"name"];
        [user setObject:userData[@"email"] forKey:@"email"];
        [user saveInBackground];
        NSURL *pictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookID]];
        NSURLRequest *urlRequest = [NSURLRequest requestWithURL:pictureURL];

        // Run network request asynchronously
        [NSURLConnection sendAsynchronousRequest:urlRequest
                                           queue:[NSOperationQueue mainQueue]
                               completionHandler:
         ^(NSURLResponse *response, NSData *data, NSError *connectionError) {
             if (connectionError == nil && data != nil) {
                 // Set the image in the header imageView
                 PFFile *profileImage=[PFFile fileWithData:data];
                 [user setObject:profileImage forKey:@"profileImage"];
                 [user saveInBackground];
             }
         }];

    }];
}

[self dismissViewControllerAnimated:YES completion:nil];

}

如果我再调用[PFUser logOut]并再次打开PFLogInViewController,当我点击facebook图标再次登录时,facebook微调器无限旋转,我收到错误“尝试将objectId更改为已知的对象离线商店。“

如何退出当前用户,然后使用PFLogInViewController再次登录?

3 个答案:

答案 0 :(得分:1)

如果我从appDelegate中删除[Parse enableLocalDatastore],我就不会再收到此错误。如果我没有固定任何物体,那么禁用它有什么不利之处吗?我是否仍然可以使用" saveEventually"如果没有网络连接?

答案 1 :(得分:0)

我认为您正在尝试再次保存同一个对象(电子邮件)。

首次登录时,该电子邮件ID将存储在fisrt时间。但是,在注销后,您再次尝试存储相同的电子邮件。

尝试搜索Parse中已存在的条目。如果要更新用户的其他详细信息,则可以使用objectId更新它。

答案 2 :(得分:0)

尝试从PFFacebookUtils取消链接PFUser,并关闭活动的Facebook会话并清除它的令牌。

[[FBsession activeSession]closeAndClearTokenInformation];

希望这会有所帮助..