はじめに
実際に私自身がNo object exists at the desired referenceでエラー出たのは、cloudFireStoreに画像をアップロードする時だったので、要注意です。
他のエラーハンドリングやエラーハンドリングの内容は下記に書いてあります。
https://firebase.google.com/docs/storage/web/handle-errors?hl=ja
解決方法
結論から言うと、firebase_options.dartに書いてあるstorageBucketとFirebaseコンソールに記載してあるcloudFireStoreのバケットに差異があったので、ターミナルでfirebase_options.dartを再生成して差異をなくしました。
そもそもNo object exists at the desired referenceは参照できるオブジェクトがないと言うことでバケット、もしくはパスが正しくないと思われます。
引用:https://firebase.google.com/docs/storage/web/handle-errors?hl=ja
static const FirebaseOptions android = FirebaseOptions(
apiKey: '...',
appId: '...',
messagingSenderId: '...',
projectId: '...',
storageBucket: '...', //ここに記載してあるバケット名に要注目
);
手順
1.まずは現時点でのfirebase_options.dartのバケット名とコンソール内のcloudFireStoreのバケット名を確認してください
2.もしバケット名が違う場合はターミナルで以下を打ってください
flutterfire configure
もし上記のコマンドが見つからずにエラーが出た場合は以下のコマンドを打ってFlutterFireCLIをインストールしてください
dart pub global activate flutterfire_cli
3.「You have an existing firebase.json file and possibly already configured your project for Firebase. Would you prefer to reuse the values in your existing firebase.json file to configure your project?」(既存のfirebase.jsonファイルが見つかり、その値を再利用するかどうか)と出てくるので基本的にはnで新しく設定をやり直してください
4.「? Generated FirebaseOptions file ~/~/firebase_options.dart already exists, do you want to override it? (y/n) › yes」(上書きするかどうか)と出てくるのでこれはyにすることでfirebase_options.dartを再生成することができます。
5.「? Which platforms should your configuration support (use arrow keys & space to select)? ›」 これは自身がサポート予定のプラットフォームを選択して下さい(モバイルだけならAndroidとIOS)
6.「? Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'? ›」 これにはandroid/app/build.gradleのapplicationIdと同じidを入力して下さい
7.最後にfirebase_options.dartとコンソール内のバケット名に差異がなければエラーが解消されると思います。
最後に
上記の方法で解決できない場合は、セキュリティルールやパスの確認、flutter cleanを試してみて下さい。