When using files on Parse, you will need to use the publicServerURL option in your Parse Server config. This is the URL that files will be accessed from, so it should be a URL that resolves to your Parse Server. Make sure to include your mount point in this URL.
Прописал publicServerURL - со второй попытки проблема решилась.
Там глюк како то бы, сейчас уже и не помню, я делал как то так, попробуйте может поможет:
// Сначала заходил через фейсбук sdk
FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email"], fromViewController: nil) { result, error in
// Получал данные пользователя
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id,name,email"]).startWithCompletionHandler { _, result, error in
let name = result.valueForKey("name") as! String
let email = result.valueForKey("email") as! String
// Проверял есть ли пользователь в базе
let query = PFUser.query()!
query.whereKey("email", equalTo: email)
// Если пользователь был найден и у него была специальная пометка (поле isFacebook = true) что он зашел через фейсбук, он авторизировался с помощью токена
// Если пометки не было и он зашел не через фейсбук предлагал восстановить пароль (коряво конечно но как вариант)
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions([:])
PFFacebookUtils.logInInBackgroundWithAccessToken(FBSDKAccessToken.currentAccessToken()) { pfuser, error in
// Если пользователь не был найден, то есть новый, авторизировал его так же с тем же токеном
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions([:])
PFFacebookUtils.logInInBackgroundWithAccessToken(FBSDKAccessToken.currentAccessToken()) { pfuser, error in
// После чего присваивал ему email и isFacebook = true
pfuser["email"] = email
pfuser["isFacebook"] = true
Спасибо за ответ! Приятно услышать чей-то голос
Глюк был раньше, как я понял, потом в новый релизах parse server исправлено. У меня не прописал был publicserverurl