После аутентификации пользователя с помощью следующего кода (ниже это обрезанная версия моего кода, так что только успешная логика Логина показана) ...Firebase - Удаление и повторная установка приложения не не-аутентификации пользователя
let firebaseReference = Firebase(url: "https://MY-FIREBASE.firebaseio.com")
FBSession.openActiveSessionWithReadPermissions(["public_profile", "user_friends"], allowLoginUI: true,
completionHandler: { session, state, error in
if state == FBSessionState.Open {
let accessToken = session.accessTokenData.accessToken
firebaseReference.authWithOAuthProvider("facebook", token: accessToken,
withCompletionBlock: { error, authData in
if error != nil {
// Login failed.
} else {
// Logged in!
println("Logged in! \(authData)")
}
})
}
})
}
(Т.е. запуск и запуск приложения, войдя в успешно).
Если вы удалите приложение и установить его заново на том же устройстве, этот вызов - который я использую в приложение делегата, чтобы определить, если пользователь вошел в систему. - всегда будет возвращаться, что они вошли в
if firebaseReference.authData == nil {
// Not logged in
} else {
// Logged in
}
Почему? Я бы подумал, что удаление приложения и его переустановка должны стереть все данные.
Если вы сбросили содержимое и настройки в iOS-симуляторе и установите приложение, то свойство firebaseReference.authData
снова будет nil
.
Я думаю, что сессия может храниться в файле cookie Safari. Можете ли вы стереть куки-файлы Safari, чтобы убедиться, что это правда. Конечно, это все равно не решит вашу проблему, но, по крайней мере, поможет определить причину. –