4

私はユーザーがFirebase Authで匿名で認証されているWebアプリケーションを持っています。 Firebase Storageにはユーザーの画像が保存されます.Facebase Storageの背後にはGoogle Cloud Storageのバケツが付いています。クライアントサイドのjavascriptからGoogle Cloud Vision APIを使用して画像プロパティを取得しようとすると、パーミッションエラーが発生します。Google Cloud Vision APIでFirebase Storageイメージを使用するにはどうすればよいですか?

image-annotator::User lacks permission.: Can not open file: gs://MYAPP.appspot.com/photos/IMG_12345.jpg 

イメージを公開すると、すべてが機能します。しかしこれはユーザーデータであり、公開することはできません。これをどうすれば解決できますか?

ビジョンAPIを呼び出すための私のコード:

gapi.client.init({ 
    'apiKey': MY_API_KEY, 
    'discoveryDocs': ['https://vision.googleapis.com/$discovery/rest'], 
    // clientId and scope are optional if auth is not required. 
    'clientId': MY_APP_ID + '.apps.googleusercontent.com', 
    'scope': 'profile', 
    }).then(function() { 
    // 3. Initialize and make the API request. 
    return gapi.client.vision.images.annotate({ 
     "requests": 
     [ 
     { 
      "features": 
      [ 
      { 
       "type": "LABEL_DETECTION" 
      }, 
      { 
       "type": "IMAGE_PROPERTIES" 
      } 
      ], 
      "image": 
      { 
      "source": 
      { 
       "gcsImageUri": "gs://MY_APP.appspot.com/photos/" + "IMG_12345.jpg" 
      } 
      } 
     } 
     ] 
    }); 
    }).then(function(response) { 
    console.log(response.result); 
    }, function(reason) { 
    console.log('Error: ' + reason.result.error.message); 
    }); 

ストレージに画像をアップロードするための私のコード:

var file = e.target.files[0]; 
var metadata = { 
    contentType: file.type 
}; 
console.log(file); 

var uploadTask = photosStorageRef.child(file.name).put(file, metadata); 

答えて

1
あなたは本当に Google Cloud Functionsのようなものを介してサーバ側でこれをやりたい

see my example here )。

クライアント側では、あなたのAPIキーには写真にアクセスするための十分なアクセス許可が必要です。プライベートフォトは基本的に公開されます(なぜなら、APIキーにはそれらを読む権限があります。 )。

+0

写真ごとにユーザー認証を行う方法はありますか?ファイアベースストレージを介してアクセスする場合は、これが可能です。詳しくは、「Firebase StorageはFirebase認証とシームレスに統合され、ユーザーを特定し、アクセスを設定する宣言型セキュリティ言語を提供します。個々のファイルやファイルのグループを制御するので、必要に応じてファイルを公開または非公開にすることができます。 – astromme

+0

また、ありがとう。クラウド関数alphaへのアクセスをリクエストしました。私は今待っていると思う? – astromme

+0

Firebaseの土地では、次を参照してください:https://firebase.google.com/docs/storage/security/user-security –

関連する問題