0

Flutter Firebase - アプリチェック

フラッターウェブ

事前に、画像を手動でバケットにアップロードしました。firebase ストレージ バケットからデータをフェッチするのに助けが必要です。

  • 解像度 1920x1080p の jpeg 形式で保存されている画像を取得しようとしていました。

    Future<String> imageData = FirebaseStorage.instance
        .ref()
        .child('images')
        .child('panda_16x9.jpeg')
        .getDownloadURL();
    
  • 次に、imageDataFutureBuilderに渡します

    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 ですが、主な問題はサーバーからのアクセス許可が拒否されているため、成功しませんでした

問題

  1. 最初は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 を見つけることができます

  2. Cors の問題を修正した後、Invalid App Check トークンを取得し始めました
    • 簡単な修正でした。ガイドに従ってください
    • 「許可が拒否されました」というエラー403 ステータス コードが表示されるようになりました
アプリ チェックの無効なトークンがなくなりました しかし、許可が拒否された403エラーコードを取得する
ここに画像の説明を入力 ここに画像の説明を入力
4

1 に答える 1