2016-04-05 89 views
1

Firebase ile bir emlak ajansı için veritabanı oluşturmaya çalışıyorum. Ben düzleştirilmiş veritabanı oluşturmaya karar ama biraz yardıma .. (kullanıyorum angularjs) İşteDüzleştirilmiş bir Firebase yapısında veri nasıl sorgulanır?

veritabanının bir örnek gerekir:

"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 için refs her ürün.

  • bir ev (ev): Biz düğüm Tipi, orada olduğunu görüyoruz bu veritabanında

    XX1
  • bir daire: XX2
  • bir kara: XX3

Soru şu: Her ürünü türle listelemek istersem: Apartman?

Daha sonra her bir dairenin refresini alabiliyorsam, bu ürünün detaylarını nasıl oluşturabilirim?

İsim, soyadı, fiyat, şehir, vb adını nasıl alabilirim?

cevap

1

Veri yapınızda neler gösterdiğiniz, dizinlerdir.

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()); 
    }); 
    }); 
}) 
: örneğin sahip daireler bakabilirsiniz, bizim endeksler ve yukarıdaki yapı ile Şimdi

"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", 
    } 
} 

:

Genellikle ayrıca her özellik için ana kopya ile bir liste olacak

Bir özelliği güncellemek için multi-location update kullanırsınız. Örneğin xx1 sahibini güncellemek için:

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

Franck, bu yanıt için çok çok açık sayesinde !!! Bu bana çok yardımcı olur !! –

+0

Franck, Bu hatayı alıyorum: TypeError: keySnapshot.key bir işlev değil. ('KeySnapshot.key()', 'keySnapshot.key' undefined öğesinde) –

+0

Yazım hatası: 'keySnapshot(). Ref(). Firebase'in bu tür şeylerde size yardımcı olması için oldukça iyi [referans dokümantasyon] (https://www.firebase.com/docs/web/api/) olduğunu unutmayın. –