がべーじこれくしょん

技術系とかいろいろ

FacebookログインでFacebookアプリからのリダイレクトがうまく行かない問題

執筆・創作活動への支援をぜひお願いします🙏
Buy Me A Coffee

tl;dr appdelegateの処理の実装を確認しようね

Firebase AuthでFacebookログインを実装してたのですが、いつのまにかFacebookアプリからリダイレクトする経路でログインがうまく行かない問題が発生。

Firebaseのチュートリアル通りに実装してFacebook SDKのほうのドキュメントを読んでいなかったことがそもそもの原因ですが、Universal Link経由で渡される認証情報をハンドルできていないのが原因なことが多いです。

AppDelegateの以下の箇所がちゃんと実装されてるか確認しましょう

import UIKit
import Firebase
import FBSDKCoreKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    // ......

    @available(iOS 9.0, *)
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
        return application(app, open: url,
                           sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
                           annotation: "")
    }

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        // ここ
        return ApplicationDelegate.shared.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
    }

    // ......
}