2016-10-19 2 views
1

Swift 3에서 Firebase를 사용하는 방법을 배우기 위해 앱을 만들고 있습니다. 지금까지 페이스 북과 Google 인증을 구현했습니다. 까다로운 부분은 AppDelegate에있는 FUNC입니다 :Firebase + iOS : 여러 인증 제공 업체를 처리합니다

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 

    // Works with google 
    return GIDSignIn.sharedInstance().handle(url,sourceApplication: sourceApplication, annotation: annotation) 

    // Works with facebook 
    //return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation) 
} 

문제는 : 페이스 북의 사용자 로그는 응용 프로그램에 반환하지 않습니다 때이 페이스 북의 라인을 언급합니다. Google과 동일합니다.

나는이 가이드를 따라 해요 :

내 문제는 내가이 기능으로 무엇을해야하는지 많은 인증 공급자 제대로 작동하는 것입니다? 그렇게 할 수있는 방법이 없다면 그것을 구현하는 적절한 방법은 무엇입니까?

어떤 도움을 주셔서 감사합니다.

답변

0

답변을 찾았습니다. FUNC은 다음과 같이 이제와 구글과 페이스 북 작동 : 이것처럼

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 

    if GIDSignIn.sharedInstance().handle(url, 
             sourceApplication: sourceApplication, 
             annotation: annotation) { 
     return true 
    } 
    return FBSDKApplicationDelegate.sharedInstance().application(application, 
                   open: url, 
                   sourceApplication: sourceApplication, 
                   annotation: annotation) 
} 
1

:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 

    let googleSignIn = GIDSignIn.sharedInstance().handle(url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) 

    let facebookSignIn = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) 

    return googleSignIn || facebookSignIn 
} 
관련 문제