我正在使用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再次登录?
答案 0 :(得分:1)
如果我从appDelegate中删除[Parse enableLocalDatastore]
,我就不会再收到此错误。如果我没有固定任何物体,那么禁用它有什么不利之处吗?我是否仍然可以使用" saveEventually"如果没有网络连接?
答案 1 :(得分:0)
我认为您正在尝试再次保存同一个对象(电子邮件)。
首次登录时,该电子邮件ID将存储在fisrt时间。但是,在注销后,您再次尝试存储相同的电子邮件。
尝试搜索Parse中已存在的条目。如果要更新用户的其他详细信息,则可以使用objectId更新它。
答案 2 :(得分:0)
尝试从PFFacebookUtils取消链接PFUser,并关闭活动的Facebook会话并清除它的令牌。
[[FBsession activeSession]closeAndClearTokenInformation];
希望这会有所帮助..