2016-08-03 15 views
0

私のアプリケーションでは、ユーザーアカウントの変更に基づいてデータを監視、修正、変更するHerokuでホスティングしている監視サービスが必要です。しかし、ユーザーアカウントには急速に更新されるいくつかのフィールドがあり、これらのアカウントのすべてをデータで監視サービスにスパムすることは非常に効率が悪いです。特定のフィールドが変更された場合は 'child_changed'を起動しない

child_changedを聞くときにフィールドを無視して、コールバックが起動せず、データがダウンロードされないようにすることはできますか?ユーザーの速度にもよりますが、監視アプリケーションで何百ものアカウントを数百回ダウンロードしている可能性があります。おそらく、私はbiographyフィールドを無視したい、そのためのchild_added機能は、次のいずれかの値が変更された場合にのみ、新しいアカウント情報をダウンロードする必要があり

{ 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    interests: { 
     // ... 
    } 
} 

:ここ

は私が探しているものの例です:

  • brithdate
  • 利益

biographyフィールドが変更された場合、モニタに関連するフィールドではなく、帯域幅を無駄にするだけなので、データは無視してダウンロードする必要があります。

答えて

1

Firebaseは常に完全なノードを同期します。ノードのリストから各ノードのサブセットのみを同期させたい場合は、そのサブセットを独自の最上位ノードに分ける必要があります。

profiles: { 
    uidJimmy: { 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    } 
}, 
interests: { 
    uidJimmy: { 
     // ... 
    } 
} 

あなたは、これが一般的であることを見つけるこれらFirebase(または他のほとんどのNoSQLデータベース)を使用する場合:あなたは、あなたのアプリケーションがそれを消費したい方法のデータをモデル化する必要があります。私はこの記事をNoSQL data modelingで読むことを強くお勧めします。

+0

これは私たちがやっていることです。データを正規化する方法があるかどうかは不思議でした。ありがとう。 – Hobbyist

関連する問題