質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Q&A

解決済

1回答

2201閲覧

Flutter : flutterfireなどのパッケージのバージョンの変更について

moriman

総合スコア615

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

0グッド

0クリップ

投稿2020/08/24 04:26

flutterとfirebaseでアプリを作っています。
パッケージ(ライブラリ)についてなんですが、最近flutterfireの各種パッケージがバージョンアップした、
と言うことを聞きました。
flutterの場合パッケージの管理は、導入するパッケージをpubspec.yamlファイルに記述すると思うのですが、
これってパッケージがバージョンアップ(アップデート)した時はどうすれば良いのでしょうか?

右上に
pub upgrade
と言うリンクがあるのですが、これを押しても各パッケージのバージョンが最新に変わるわけではないみたいです。
これ定期的に自分でアップデートがあるかどうか調べて手動で書き直さないといけないのでしょうか?

pub upgrade
は結局どういう機能なのでしょうか?
どこを見たらわかるでしょうか?

もう一つ。現時点でpubspec.yamlのfirebase_storageパッケージを

firebase_storage: git: url: git://github.com/danysz/flutterfire.git ref: master path: packages/firebase_storage

のように記述しています。firebase_storageのデータを全件取得するためのメソッドlistAllを使うためにはこのように
記述する、と以前ここで教えていただきました。
flutterfireの他のパッケージを最新にすると、
pub get
した時にfirebase_storageの部分でエラーが出ます。ただfirebase_storageを

firebase_storage: ^4.0.0

のように最新に指定するとlistAllメソッドが使えなくなります。
結局パッケージを最新にしなければ現時点でアプリは動く(全件取得できる)のですが、
ずっとパッケージを最新にしない、という選択肢は無いのではないかと思います。
どうすればパッケージのバージョンを最新にして動かせるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pub getpub upgradeは用途としてはそこまで違いはないです。
pub getは、pubspec.lockファイルに記述されている依存関係を見つつ、pubspec.yamlを参照にパッケージを取得します。
pub upgradeは、pubspec.yamlのみを参照し、最新バージョンを取得します。その後、pubspec.lockファイルを生成します。
間違ってたらすみません。。

https://stackoverflow.com/questions/20719515/dart-pub-get-vs-pub-upgrade

firebase_storageは、firebase_coreに依存しているため、そこらへんでエラーが起きてインストールできないのではないでしょうか?
ここがポイントになるのですが、今現在ですと、listAllを使いたい場合は古いバージョンを使わなければなりません。それは仕方ないので最新にしないという選択肢も全然ありだと思います。

ただ、listAllメソッドはもう少しでマージされそう?なので、それまで我慢したら最新バージョンが使えるのではないかと思います。

以下参照
https://github.com/FirebaseExtended/flutterfire/pull/232
https://github.com/invertase/flutterfire/pull/53

投稿2020/08/24 05:21

編集2020/08/24 05:24
tepci

総合スコア419

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moriman

2020/08/24 05:39

回答をいただきましてありがとうございます。 こういうアップデートに慣れてなくてよくわからないのですが、 例えば今現在pubspec.yamlに記述しているバージョン(古いバージョン) firebase_core: ^0.4.5 firebase_auth: ^0.16.1 cloud_firestore: ^0.13.0+1 google_sign_in: ^4.5.1 firebase_dynamic_links: ^0.5.3 firebase_storage: git: url: git://github.com/danysz/flutterfire.git ref: master path: packages/firebase_storage とりあえず現時点で上記のバージョンでlistAllを使って動いている状況です。 これに対してどんどん各パッケージがアップデートされていくと思うのですが、この現時点での古いバージョンが使えなくなるのにどれぐらいの猶予期間があるものなのでしょうか? 多分ケースバイケースだと思うのですが、結局その猶予期間内は古いバージョンでアプリを公開できるが、その期間までにパッケージをアップデートして、動くようにコードを書き直さないといけない、ということですよね? そしてアップデートした時に変更が非常に大きく、これまでのコードを大きく変更しないといけないような状況を破壊的アップデート(更新)と言うのでしょうか。 とりあえずgit(hub)に関して基本を勉強しないとどうにもならないと思うので、またその時はよろしければお願いいたします笑 いつもありがとうございます。
tepci

2020/08/24 07:30

古いバージョンが使えなくなるということはないと思います。 今の環境で動いているならば、今後も今の環境で開発を進めれば問題ないです。 ただ、新しいiOSやAndroidのバージョンに対応するために最新バージョンのパッケージを使わないといけないということはあるかもしれません。 Flutter自体のバージョンにも注意してください。むやみに上げるべきではないです。 破壊的アップデートについての認識はそんな感じです。 通常、学習のためにFlutterを使っているということならば、どんどんバージョンを上げて新機能など使うべきですが、今回は特殊なケースでしたね笑 listAllが早くマージされることを祈ってます...笑
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問