initial ViewController
으로 설정하면 Firebase
, Google Sign In
을 내 ios 앱의 AuthViewController
에 통합했습니다.Google Firebase 로그인이 끝나면 AppDelegate에서 ViewController로 이동합니다.
사용자가 Google 로그인 버튼을 사용하여 로그인하면 그는 (AuthViewController
)으로 다시 리디렉션됩니다. 즉, 로그인 한 상태에서 Google 로그인 버튼을 표시합니다.
질문 :
나는 사용자가 로그인 한 후 특정 ViewController
로 리디렉션 구성 할 수있는 방법이 있나요? 나는 아래와 같은 기능을 사용하여 내가 AppDelegate
년대에서 프로그래밍을 할 수있는 방법을 알 필요가없는 경우
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {
if let error = error {
// ...
return
}
guard let authentication = user.authentication else { return }
let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
accessToken: authentication.accessToken)
Auth.auth().signIn(with: credential) { (user, error) in
if let error = error {
// ...
return
}
// User is signed in
// ...
}
}
내가 이미 SEGUE가
MainViewController
에 SEGUE 내
AuthViewController
에 정의 된, 그러나 중포 기지 인증과 같은 한
는 비동기 호출입니다 및 userAuthenticated()
기능은 우리가 viewDidAppear
함수 호출 시간 false
을 반환
override func viewDidAppear(_ animated: Bool) {
print("--------View Did Appear \(userAuthenticated())")
if userAuthenticated() {
self.performSegue(withIdentifier: "showMain", sender: nil)
}
}
func userAuthenticated() -> Bool {
return (Auth.auth().currentUser != nil) ? true : false
}
편집 : 원사의 접근 방식으로 , 그것은 .. 문제를 해결하지만, 먼저 AuthViewController
의보기을 보여주고 있지만 D는 내가 직접 MainViewController
고토하기 위해 사용자가 한 번 로그인 할 .. 보여 MainViewController
... 그것의 나쁜 UI 경험을 segues.
될 것입니다 무엇 이 경우에 'segue'식별자는 무엇입니까? 나는'source '컨트롤러와'destination' 컨트롤러가 무엇을 의미합니까? –
segue 식별자는 "showMain"입니다. 루트 뷰 컨트롤러는 초기보기 컨트롤러로 설정했기 때문에 'AuthViewController'입니다. 목적지는 "showMain"segue의 다른 끝에있는'MainViewController'입니다. – Yarn
'AuthViewController'는 UINavigationController에 내장되어 있습니까? – Yarn