2016-11-03 3 views
0

Я пытаюсь использовать ленивые элементы загрузки, используя Firebase V3. У меня уже есть denormalized мои данные, но я хотел бы сделать еще один шаг.Предотвращение загрузки дубликатов при ленивой загрузке в Firebase

До сих пор я пытался отфильтровать данные, используя запросы .limitToLast() следующим образом:

var limitLength = 20; 
var orderNode = "price"; 

firebase.database().ref(refPath).orderByChild(orderNode).limitToFirst(limitLength).on('value', function(snapshot) { 
    //success: snapshot.val() 
}, function(error){ 
    //error 
}); 

Проблема заключается в том, что когда я увеличить длину до 40, Firebase перезагрузит первые 20 пунктов, а также , Это, очевидно, повредит моей работе, когда limitLength увеличивается.

Как это можно преодолеть? То есть как я могу загружать только данные, которые поступают в места 21 ... 40?

ответ

1

Вы не можете ответить за вопрос skip первые 20 позиций. Но вы можете сказать это , начинающийся с определенного товара. С этим вы можете сделать почти то же самое, разница в том, как вы реализуете его и единый перекрывающийся элемент между последовательными парами запросов.

var limitLength = 20; 
var orderNode = "price"; 
var latestKey, latestProp; 

var location = firebase.database().ref(refPath); 
var query = location.orderByChild(orderNode).limitToFirst(limitLength); 
query.on('value', function(snapshot) { 
    snapshot.forEach(function(child) { 
     latestKey = child.key; 
     latestProp = child.val()[orderNode]; 
    }); 
    query = location.orderByChild(orderNode).startAt(latestProp, latestKey).limitToFirst(limitLength+1); 
}, function(error){ 
    //error 
}); 
+0

Спасибо, это имеет смысл! Другое дело, хотя ... возможно ли изменить сортировку .orderByChild()? Возможно, это должен быть отдельный вопрос. – JohnAndrews

+1

Это действительно отдельный вопрос. Не публикуйте его, хотя и выполните поиск: его просили и ответили довольно много раз. –

+0

Это было невероятно просто .. замените .limitToFirst на .limitToLast! – JohnAndrews

 Смежные вопросы

  • Нет связанных вопросов^_^