しばらくすると直る analytics is not a function の対処方法

1 min read読了の目安(約600字

ビルドしてすぐアクセスしたときとか静的にexportしようとしたときに、なぜかanalyticsが未定義になる現象が起こっていた

if (!firebase.apps.length) {
  firebase.initializeApp(config)
  firebase.analytics()
}

TypeError: firebase__WEBPACK_IMPORTED_MODULE_0___default.a.analytics is not a function

ググっても「先頭に import 'firebase/analytics' って書いてね」とか「firebase@7.1.0以降で直ってるよ〜」とか、そうじゃなさそうな情報しかなかった
しばらくすると動くんだからサァ…

で、
firebaseのonReady的なものがないか探していたら、あった

if (!firebase.apps.length) {
  firebase.initializeApp(config)
  firebase.analytics.isSupported().then((isSupported) => {
    if (isSupported) {
      firebase.analytics()
    }
  })
}

たぶん本来はエンジンが本当にブラウザかどうかを調べる関数なのだが、
analyticsがサポートされているのに未定義になることはないだろうし良さそう