Firebaseのエラーへの対処 - Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app has already been configured.

はじめに

iOSのFirebaseでは、以下を二重に呼ぶ事は禁止されています(クラッシュします)

FirebaseApp.configure()

この時のクラッシュの内容は以下のようになります。

Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app has already been configured.

しかし、TodayExtension等、回避しづらいケースがあり、その解決法です。

FirebaseApp.app()を使う

要はFirebaseApp.configure()は、FirebaseAppのオブジェクトを生成し、設定を行う事ですので、
インスタンスが生成されていないかをチェックすれば回避出来ます。

import Firebase

class TodayViewController: UIViewController, NCWidgetProviding {

    override func viewDidLoad() {

        // 省略

        if FirebaseApp.app() == nil {
            FirebaseApp.configure()
        }

        // 省略
    }


}