firebaseの依存パッケージでエラーが発生


エラー発生

flutter pub upgradeした突然以下のようなエラーが出てビルドできなくなったことがあった

firebase_messaging_platform_interface-3.2.0/lib/src/method_channel/utils/exception.dart:13:11:
Error: Member not found: 'Error.throwWithStackTrace'.
    Error.throwWithStackTrace(exception, stackTrace);

結果として原因はflutterのバージョンが古いせいでfirebaseの依存パッケージ間でバージョンエラーが起きているせいだった。

対処法

主に下記の二つどちらかでエラーは解消した。

  1. flutter upgradeでflutterのバージョンをアップグレードする
  2. 依存パッケージのバージョンを明示的に固定する

flutterのバージョンを上げられる人はそもそもこんなエラーには出会わなそう。少し古いバージョンのバージョンでflutterを使っている人が主にぶつかるエラーだと思うので、ここでも2.の対処方法を記述する。

やり方は簡単でpubspec.ymlに下記を追記すれば良い。

dependency_overrides:
  firebase_messaging_platform_interface: 3.1.6
  firebase_storage_platform_interface: 4.0.14
  cloud_functions_platform_interface: 5.0.21
  cloud_firestore_platform_interface: 5.4.13
  firebase_auth_platform_interface: 6.1.11
  firebase_database_platform_interface: 0.2.0+5
  firebase_performance_platform_interface: 0.1.0+4
  firebase_analytics_platform_interface: 3.0.5
  firebase_remote_config_platform_interface: 1.0.5

全てを書く必要はなく、エラーが発生しているパッケージのみ上書きすれば良い。