2017-09-09 2 views
0

getDownloadURLオプションを起動する前にストレージが最初に存在するかどうかを確認する方法はありますか?Firebase Javascriptで機能が実行される前にストレージが存在するかどうかチェック

ここに私のコードです。私はprofilepicture用ストレージフォルダを持っていない場合は

​​

enter image description here

、私のコンソールログは、私は、ストレージオブジェクトを持っていないというエラーを示し続けます。したがって、ストレージオブジェクトが存在する場合にのみ関数を実行するようにしたいと思いますか?

答えて

1

それが存在しているかいない場合は、をチェックするためにダウンロードする必要があります。 Firebase APIは、失敗した理由を示す適切なエラーで応答します。

は、エラーを処理するcatchブロックを使用します。

.catch(function(error) { 
    switch (error.code) { 
    case 'storage/object_not_found': // <<< here you decide what to do when the file doesn't exist 
     // File doesn't exist 
     break; 

    case 'storage/unauthorized': 
     // User doesn't have permission to access the object 
     break; 

    case 'storage/canceled': 
     // User canceled the upload 
     break; 

    ... 

    case 'storage/unknown': 
     // Unknown error occurred, inspect the server response 
     break; 
    } 
}); 

エラーコードの完全なリストはhere可能です。

+0

私が見るああ、ありますか? – Learning2code

+0

あなたはコンソールにそれを書いています。キャッチブロックを見てください。その行を削除しても表示されません。 – Shaharyar

+0

申し訳ありませんが、私はconsole.logエラーを意味しませんでした。コンソールでポップアップし続けるエラーのスクリーンショットを表示するために投稿を編集しました。これを隠すか、それが表示されないようにしたいのです – Learning2code

0

私の知る限り、ユーザが存在するファイルのみを要求するように設計されたfirebaseストレージ。したがって、非既存のファイルには、エラーに

See this documentation for how to handle this errors in storage

として扱われているそうでなければ、私はあなたがgetDownloadUrlを使用することができますお勧めします。私のブラウザのコンソールに表示からエラーを非表示にする方法は、今度は以下のような約束を返し、

storageRef.child("file.png").getDownloadURL().then(onResolve, onReject); 
function onResolve(foundURL) { 
    //stuff 
} 
function onReject(error) { 
    console.log(error.code); 
} 
+0

コンソールにこのエラーを隠す方法はありますか? – Learning2code

+0

コンソールに隠したいものがわかりません。あなたのキャッチ関数でconsole.logを削除し、Shaharyarに記載されているswitch文を以下に入力してください – MuruGan

+0

私は何が起こったのスクリーンショットを追加しました。 – Learning2code

関連する問題