2013-02-28 12 views
6

Burada açıklandığı gibi bir "Firebase" indeksini uygulamaya çalışıyorum: https://stackoverflow.com/a/10559689/534086 ve sıralama verilerinin azalan düzende nasıl ele alınacağını anlamaya çalışıyorum. Eğer 'c', 'b', 'a' almak için 'a', 'b', 'c' olan bir düğümünüz varsa mümkün mü? (hala orijinal düzende bunları almak mümkün iken?)Bir Firebase düğümünün alt öğelerini ters sırada hareket ettirmek mümkün mü?

Düğümün hem ileriye hem de geriye doğru hareket etmesi mümkün değilse ve iki dizin oluşturmam gerekiyorsa, sıralamak için kolay bir algoritmadır. ters sözde mi? Sayılar için -1 ile çarpabileceğinizi düşünüyorum, ancak dizeleri nasıl kullanacağınızdan emin değilsiniz ...

cevap

9

"Sınır()" ifadesinin nasıl çalıştığına benzer bir "ters"() sorgusu istediğiniz gibi geliyor . Firebase bunu henüz yapamaz, ancak eklemeyi planlıyoruz.

Kullanım durumunuza bağlı olarak, bu durumdan kurtulmanız oldukça basit olabilir. Örneğin, Firebase'in sıralamasını, kullanıcıya görüntülenmek üzere bir listeyi tutmak için kullanıyorsanız, şeyleri geriye döndürmek için ekran mantığını basitçe değiştirebilirsiniz (örneğin, örneğin eklemek için öğeleri ekleyin). Çok sayıda çocuktan oluşan bir veri penceresi seçmek için sorgu yapıyorsanız (örneğin, ilk 10 öğeyi uzun bir listeden çıkarmak için), sıralama düzeni önemli olmamalıdır - başlangıç ​​ve bitiş puanlarınız sorgu tersine çevrilmeleri dışında aynı kalır.

+0

Evet, "reverse()" mükemmel olur. İş çevreleri açısından, ikinci vaka (büyük çocuk grubu, bazen ilk birkaç öğeyi istiyorum, bazen son birkaç şeyi istiyorum) ilgimi çeken şey. Önerinizi anladığımdan emin değilim ... .startAt (100) .endAt (20) 100'den 20'ye kadar geriye doğru iterasyon yapacak mı? (hangisi harika olurdu) – josh

+6

Başlangıçta startAt (20) .endAt (100) yapabileceğinizi ve sonra bunları geriye doğru oluşturmanızı önereceğim. –

+11

@andrewlee vaat vaat vaat ediyor. "Yakında bir tersine() ve bir ofset() ekleyeceğiz! Söz veriyoruz!" 1 1/2 yıl sonra hala aynı sorunlara bağlıyız. :) Çözümünüz büyük veri kümelerinin sayfalandırılması için çalışmıyor! – CodingWithoutComments

0

limitToLast() kullanıyor ve sonuç kümesini kendiniz mi sıralayabilirsiniz? Angular kullandığınızda bu tür bir şeyin çalıştığını biliyorum; burada items $ kapsamı üzerinde bir Firebase dizi nesnesidir;

<li ng-repeat="item in items | orderBy:'-fieldName'"> {{ item.fildName }}</li> 
İlgili konular