2017-02-18 7 views
1

Webアプリケーションには、FirebaseデータベースにJSONオブジェクトを保持する単純なフォームがあります。このフォームのすべてのフィールドが必要なわけではないので、送信されるオブジェクトが構築されるときには、いくつかのundefinedプロパティを持つことがあります。 Firebaseはundefined値を保持しようとするとエラーがスローされますFirebaseで定義されていない値を扱う

ビーイングは、私はすべて上書きするためのフレームワークが提供するいずれかの方法があるかどう思ったんだけど、(もちろんのこと、あなたはJSONオブジェクトのundefined値を持つべきではありません)未定義の値はnull、または空の文字列ですらあります。私はまだオンラインで解決策を見つけていません。

最悪のシナリオは、私は手動でnullにすべての未定義のプロパティを設定できますが、私はむしろ、この上

その任意のアイデアや提案をしないだろうか?

ありがとうございます!

答えて

1

値が渡されることを期待しているJSONの性質(この場合はnullまたは空の文字列)が原因で、特定の方法があるとは思われません。

これは現時点では不幸なことですが、クライアント側でこれを処理し、データが入力されていない場合は手動で「ヌル」または空の文字列を追加する方がよいと思います。その後、「snapshot.val()!== null」のような形式でFirebaseのその場所でデータをテストできます。

3

私のソリューションは、その後、私はJSON parse()

バックオブジェクトに変換するだけで stringify()すべての未定義の値

obj = JSON.parse(JSON.stringify(obj, function(k, v) { 
    if (v === undefined) { return null; } return v; 
})); 

を交換するreplacerと組み合わせる目的でした

関連する問題