ios Parse.com — после включения локального хранилища данных PFFacebookUtils блок loginWithPermission никогда не вызывается

После включения (нового) локального хранилища данных в Parse версии 1.6.1 для iOS блок в PFFacebookUtils loginWithPermission никогда не вызывается.

[Parse enableLocalDatastore];
[Parse setApplicationId:@"***" clientKey:@"***"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
   // Gets never called
}];

При удалении [Parse enableLocalDatastore] вызывается блок.

// [Parse enableLocalDatastore];
[Parse setApplicationId:@"***" clientKey:@"***"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
   // Gets called as in previous versions
}];

У меня также есть методы переключения приложений для поддержки единого входа Facebook.

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]];
}

Я проверил документацию и не смог найти никакой помощи. Я что-то пропустил при включении локального хранилища данных?


person xshake    schedule 02.01.2015    source источник
comment
Об этой ошибке сообщалось в различных формах на странице developers.facebook.com/bugs. /custom/?tag_ids=475720899235524, а точнее здесь developers.facebook.com/bugs/ 704471719668983. Вы можете подписаться там, я также жду ответа от FB.   -  person abinop    schedule 05.01.2015
comment
О, почему они такие невнимательные.   -  person fatuhoku    schedule 27.01.2015


Ответы (3)


Проблема исправлена ​​в Parse 1.6.2.

person abinop    schedule 24.01.2015

Возможно, локальное хранилище данных испытывает исключение. Попробуй использовать

[[PFFacebookUtils loginWithPermissionsInBackground: perms] continueWithBlock: ^ id (BFTask * task) {
// breakpoint
}];

и проверьте с помощью lldb задачу, чтобы убедиться, что task.exception равен нулю.

У меня похожая проблема: я могу войти в свое приложение с помощью вышеупомянутого метода, но затем, если я выйду из системы, когда я снова попытаюсь войти в систему, я застрял, и task.exception говорит:

Попытка изменить objectId на уже известный OfflineStore.

person Lorenzo Bevilacqua    schedule 02.01.2015
comment
[PFFacebookUtils loginWithPermissionsInBackground: perms] continueWithBlock, кажется, работает для входа в систему, но после первого запуска я получаю warnBlockingOperationOnMainThread, вызванный внутренним вызовом [PFOfflineStore _initialzeTables]. - person xshake; 02.01.2015
comment
У меня также есть некоторые внутренние вызовы Parse в основном потоке. Я предполагаю, что на данный момент это нормальное поведение API. После этого звонка ваше приложение работает так, как задумано? - person Lorenzo Bevilacqua; 03.01.2015
comment
Использование [PFFacebookUtils loginWithPermissionsInBackground: perms] continueWithBlock работает нормально, и вызывается метод блока. Я также удалил вызов из AppDelegate в методе didLoad ViewController, и теперь warnBlockingOperationOnMainThread больше нет. - person xshake; 03.01.2015
comment
Я получал ту же ошибку, которую я мог решить, только не включив локальное хранилище данных - stackoverflow.com/a/27805495/538993 - person David; 06.01.2015

Это может быть связано с: https://developers.facebook.com/bugs/994229510592686/< br> Это ошибка, и она будет исправлена ​​в следующем выпуске Parse SDK.

person amudi    schedule 16.01.2015