Flutter Firebase - アプリチェック
フラッターウェブ
事前に、画像を手動でバケットにアップロードしました。firebase ストレージ バケットからデータをフェッチするのに助けが必要です。
解像度 1920x1080p の jpeg 形式で保存されている画像を取得しようとしていました。
Future<String> imageData = FirebaseStorage.instance .ref() .child('images') .child('panda_16x9.jpeg') .getDownloadURL();
次に、imageDataをFutureBuilderに渡します
FutureBuilder<String>( future: imageData, builder: (context, imageUrl) { if(imageUrl.hasError) { return __(widget saying error)__ } if(imageUrl.hasData) { return Image.network(imageUrl.data!); } return __(loading widget)__ });
私もデータを取得しようとしました Uint8List ですが、主な問題はサーバーからのアクセス許可が拒否されているため、成功しませんでした
問題
- 最初はcorsエラーが発生していました
- Request Response ヘッダーに「access-control-origin-access」はありません。
- GCP に移動してクラウド シェルを開き、cors ルールを追加することで修正しました。
- Google Cloud Console を開く
- firebase プロジェクトと同じプロジェクトを選択します
- クラウド シェルを開く
- ファイルの作成
touch cors.json
- vim を使って編集する
vim cors.json
[ { "origin":["*"], // In production we will replace it with original domain name "method":["GET","POST","UPDATE","DELETE"], "header":["Access-Control-Allow-Origin"], "maxAgeSeconds":3600, } ]
- コマンドを実行
gsutil cors set cors.json gs://<your-bucker>
Firebase storage セクションからバケットの URL を見つけることができます
- Cors の問題を修正した後、Invalid App Check トークンを取得し始めました
- 簡単な修正でした。ガイドに従ってください
- 「許可が拒否されました」というエラー403 ステータス コードが表示されるようになりました