FlutterFireのfirebaseライブラリバージョン問題2021.02
主にiOSのFirebaseライブラリの関係で、firebase_core
のバージョンに非連続的なアップデートが入っている。
-
firebase_core
v0.5.0+1- 2020年10月7日リリース
- Firebase iOS v6.26.0に依存
-
firebase_core
v0.5.1- 2020年10月29日リリース
- Firebase iOS v6.33.0に依存
-
firebase_core
v0.6.0- 2021年1月11日リリース
- Firebase iOS v7.3.0に依存
このためfirebase_core
に依存している、flutterむけのfirebaseライブラリのバージョンを揃える必要がある。
特に v0.6.0
でiOS 10がminimum support SDKになっている。
各ライブラリのchangelogの記載をチェックすることで、どのfirebase_core
に依存しているのか、最近のバージョンでは把握することができる。
わかりやすいところでは、firebase_auth v0.19.0
がfirebase_core v0.6.0
に、firebase_auth v0.18.2
がfirebase_core v0.5.1
に対応している。
同じFirebase iOSのSDKを見ていれば(iOSでは)問題がないので、その間のバージョンはより低い方のSDKと合致していれば良いことになる。
firebase_messeging
がややこしいことになっているので、個別で記載してみる。
firebase_core v0.7.0
に対応するstableバージョンがリリースされていない
Firebase iOS v7.3.0
に対応しているのがfirebase_messaging v8.0.0-dev.12
となっており、stable版で対応するバージョンが存在していない。
このため、firebase_core v0.7.0
に対応するバージョンに更新しようとしても、1つだけ.dev
付きで対応する必要がある、と公式に明言されていたりする。
リリースしてくれ。
なお、firebase_messaging v8.0.0-dev.12
ではAPIの破壊的な変更が入っている。
特にBackground Notificationの処理周りがAndroidで大きく変わっており、動作テストが必須の修正な雰囲気がある。アップデートを試してみたところ、困ったことにBackgroundでFlutter PluginをAndroid側でbindingする処理に影響があり、Backgroundで通知を受けた時にshared_preferencesへのアクセスをしている処理が何事もなかったかのように動作しなくなっている雰囲気があった。
ちょっと時間ができたら調査しておきたいが、nndb対応がされたfirebase_messaging v9.0.0
系のリリース準備がすでに進んでいるので躊躇せざるを得なかったりもする。
準備中のv9系では、v8系でdeprecatedになったAPIが削除されているので、stable版のリリースをしようとするとコードの修正が必須になりそうだ。ちょっと利用者側の方を向いて欲しかったりする。とてもつらい。
migration guideが正しくない
どうやらmigration guideに記載されているバージョンは自動生成されているらしく、migration guideの通りのバージョンを指定するとビルドができない。この状態は修正する予定がないらしく、また2021年3月3日に発表されるであろうnndb対応がされたバージョンが出るまで、今の状況が続きそうな雰囲気がある。
null safety版として、9.0.0が準備された。