2016-05-10 1 views
0

私はプロジェクトを開始し、コードスタイルのガイドを設定しています。私は以下の2つのうちの2番目が好きですが、これら2つのステートメントが実行される方法に違いがあるのだろうかと思います。 2番目のものは遅いですか、またはデータベース全体の呼び出しが行われる前にチェーン全体が評価されていますか?両者の間にパフォーマンスの差がないファイヤーベースの子構文のパフォーマンス

db 
    .child('data') 
    .child('projects') 
    .child(currentProject) 
    .child('boxes') 
    .child(newBoxId) 
    .set(true); 

答えて

1

db.child(`data/projects/${currentProject}/boxes/${newBoxId}`).set(true); 

スタイル2:

スタイル1(私はソケット内の単一のフレームを参照のこと)。

child()を呼び出すには、クライアントをサーバーに接続する必要はありません。クライアント側での純粋な操作です。したがって、あなたのコードで最も読みやすいものを実行することができます。

パスに静的セグメントのセットがある場合、通常はそれらを1つのchild()コールで組み合わせます。しかし、動的セグメントがある場合は、文字列を連結しないようにするために、それを独自のchild()呼び出しに入れることを好みます。

ref.child('users').child(authData.uid).child('documents/passport').on('value'... 
+0

優れています。フランクに感謝します。 –

+0

FWIW私はちょっとした助言を書いて、私の行を短くする: 'getRef( 'data/projects'、projectId、 'boxes'、boxId).update(box);'(gist:https://gist.github。 com/davidgilbertson/d7bc056170057bc9d16252f42302e4d7) –

+0

ニース。やや短く(必ずしも読みやすいとは限らない): '['data/projects'、projectId、 'boxes'、boxId] .join( '/')' –

関連する問題