2014-12-09 29 views
5

sorgular:Aşağıdaki veri yapısı göz önüne alındığında

{ 
    "comments" : { 
    "-JcBbk64Gpm1SKoFHv8b" : { 
     "content" : "blah", 
     "createdAt" : 1417550954985, 
     "link" : "http%3A%2F%2Flocalhost%3A3000%2F", 
     "recommendedCount" : 0, 
     "replies" : { 
     "-JcBbk8gF_nQ_vjwag61" : true 
     }, 
     "replyCount" : 1 
    }, 
    "-JcBbk8gF_nQ_vjwag61" : { 
     "content" : "blah blah", 
     "createdAt" : 1417550955151, 
     "link" : "http%3A%2F%2Flocalhost%3A3000%2F", 
     "recommendedCount" : 0, 
     "replyCount" : 1, 
     "replyToComment" : "-JcBbk64Gpm1SKoFHv8b" 
    } 
    }, 
    "links" : { 
    "http%3A%2F%2Flocalhost%3A3000%2F" : { 
     "author" : 5, 
     "commentCount" : 2, 
     "comments" : { 
     "-JcBbk64Gpm1SKoFHv8b" : true, 
     "-JcBbk8gF_nQ_vjwag61" : true 
     }, 
     "createdAt" : 1417550954931, 
     "ratingCount" : 2, 
     "recommendedCount" : 32, 
     "score" : 91, 
     "title" : "A Christian vs. an Atheist: Round 2", 
     "url" : "http://localhost:3000/" 
    } 
    } 
} 

Ben belirli bir bağlantı için tüm yorumları almak ve ters kronolojik sırayla bunları sıralamak istiyorum. Buraya kadar ele verdik, ama ben zaten bağlantıyla sonuçları daraltmak için orderByChild kullandım çünkü ters sıralama nasıl bilemiyorum:

ref.orderByChild('link').equalTo(currentLink).on('value', function (snap) { 
    console.log(snapshot.val()); 
}); 

I) (bir saniye orderByChild ararsanız böyle zamanı:

ref.orderByChild('link').equalTo(currentLink).orderByChild('createdAt').on('value', function (snap) { 
    console.log(snapshot.val()); 
}); 

bu hata iletisiyle başarısız olur:

Uncaught Error: Query.orderByChild: You can't combine multiple orderBy calls.

stumped. Baska öneri?

+0

Arama talebiBir sorguda birden çok kez desteklenmiyor. Denediğinizde oldukça açık bir hata mesajı almalısınız. Lütfen "Bu başarısız" çok genel olduğu için, sorunuza bu tür hata mesajlarını koymayı öğrenin. –

+0

@FrankvanPuffelen "Belirli bir bağlantı için tüm yorumları nasıl alacağınızı ve bunları ters kronolojik sırayla nasıl sıralayacağımı anlamaya çalışıyorum." Yaptığım şeyin işe yaramayacağını anlıyorum. Çalışacak bir yol bulmaya çalışıyorum. – cayblood

cevap

1

Firebase projemde aynı sorunları yaşadım ve bunu böyle çözdüm. Lütfen bir göz atın.

var formRef = firebase.child('links').child(currentLink); 
formRef.orderByChild('createdAt').on('value', function (snap) { 
    console.log(snapshot.val()); 
}); 

Çalışır. Saygılarımızla.

İlgili konular