2016-04-05 16 views
1

私はFirebaseで不動産代理店のデータベースを作成しようとしています。ここでフラット化されたFirebase構造のデータをクエリするには?

(私はAngularJSを使用しています) ..私はフラット化データベースを作成することにしたが、私はいくつかの助けを必要とするデータベースのサンプルです:

"city" : { 
    "Montpellier" : { 
     "xx2" : true, 
     "xx3" : true 
    }, 
    "Teyran" : { 
     "xx1" : true 
    } 
    }, 
    "owners" : { 
    "xxx1" : { 
     "lastname" : "Duparc", 
     "name" : "Jean" 
    }, 
    "xxx2" : { 
     "lastname" : "Dupont", 
     "name" : "Henry" 
    }, 
    "xxx3" : { 
     "lastname" : "Wood", 
     "name" : "John" 
    } 
    }, 
    "prices" : { 
    "xxx1" : 405000, 
    "xxx2" : 100000, 
    "xxx3" : 122000 
    }, 
    "type" : { 
    "appartment" : { 
     "xx2" : true 
    }, 
    "home" : { 
     "xx1" : true 
    }, 
    "land" : { 
     "xx3" : true 
    } 
    } 

XX1、XX2、XX3がために、参考文献であります各製品。

  • つのホーム(家)::私たちはノードタイプで、そこにあることがわかり、このデータベースで

    XX1
  • 1アパート:XX2
  • 1土地:XX3

質問は次のとおりです。アパートタイプの各製品をリストしたいのですが?

各アパートメントの審査を受けることができれば、どのようにしてこの製品の詳細を構築できますか?

私は、名前、所有者の姓、価格、都市などをどのように取得できますか?

答えて

1

データ構造に表示されているのはインデックスです。

ref.child('type').child('apartment').on('value', function(keys) { 
    keys.forEach(function(keySnapshot) { 
    ref.child('properties').child(keySnapshot.ref().key()).once('value', function(propertySnapshot) { 
     console.log(propertySnapshot.val()); 
    }); 
    }); 
}) 
:あなたは、たとえば付きのアパートメントを調べることができ、私たちのインデックスと以上のように構成された今

"properties": { 
    "xx1": { 
    "city": "Teyran", 
    "owner": "Jean Duparc", 
    "price": 405000, 
    "type": "home", 
    }, 
    "xx2": { 
    "city": "Montpellier", 
    "owner": "Henry Dupont", 
    "price": 100000, 
    "type": "apartment", 
    }, 
    "xx3": { 
    "city": "Montpellier", 
    "owner": "John Wood", 
    "price": 122000, 
    "type": "land", 
    } 
} 

あなたはまた、典型的には、各プロパティのマスターコピーのリストを持っています

プロパティを更新するには、multi-location updateを使用します。たとえば、xx1のオーナーを更新するには:

var updates = {}; 
updates['/properties/xx1'] = property; 
updates['/owners/Jean Duparc/'+id] = null; 
updates['/owners/Runfast Webmaster/'+id] = true; 
ref.update(updates); 
+0

フランク、ありがとう、この回答は非常に明確です!それは私に多くの助けを与える!!!! –

+0

フランク、私はこのエラーが表示されます:TypeError:keySnapshot.keyは関数ではありません。 ( 'keySnapshot.key()'、 'keySnapshot.key'は定義されていません) –

+0

Typo: 'keySnapshot()。ref()。key()' Firebaseには、このような種類のものを手助けするためのかなりまともな[参考資料](https://www.firebase.com/docs/web/api/)があります。 –

関連する問題