2016-05-01 6 views
1

Firebaseをバックエンドストアとして使用するnodejsアプリケーションがあります。残念なことに、ユーザーが有効な子ネームを与えることを忘れたり、子ネームを忘れたりすると、nodejsアプリケーションが "Firebase:無効なパス"エラーでクラッシュします。 "エラー:Firebase.childが失敗しました:最初の引数は無効なパス" undefined "でした。パスは空ではない文字列で、"。 "、"# "、" $ "、" [" ""Firebase - Firebaseの未定義パスエラーをキャッチする方法

この種のエラーを検出する方法はありますか?私はtry-catchを使うことを考えていましたが、ネストされたループの中でより深い非同期呼び出しではうまくいきません。

アイデア?

ありがとうございました

+0

.child()を呼び出す前にパスを検証するだけですか?空の文字列とその禁止文字のシンプルなチェック –

+0

@Andre - これは最も簡単な方法です。しかし、それが.child()を呼び出す前に送信されるすべてのパラメータをチェックする必要がある場合は非常に非効率的です。 "定義されていない"ものはあまりありませんが、アプリをクラッシュさせる代わりに、それらのエラーをキャッチする必要があります。 – mentalic

+0

ユーザー入力の検証は効率の問題ではありません。ユーザーがパスの一部を入力できるようにする場合は、その値を検証する必要があります。 –

答えて

0

予防は治療よりも優れています。

Firebaseを呼び出す前にパスが有効かどうか(未定義または禁じられている文字)をチェックするだけでいいと思います。次は、トリックを行う必要がありますので、私の経験では、それは(ほとんど)常に未定義の変数です:

if(var x != undefined) 
    //Do something 

それが最適ではないかもしれないが、それは制限されますので、それがエラーを防止し、多分、より効率的に、すべてのエラーをキャッチしますあなたがFirebaseに行った電話。

+0

ありがとう!私はそれを行います。しかし、Firebaseで言及した種類のエラーをキャッチすることは可能ですか? – mentalic

関連する問題