startAt也不等于在firebase

时间:2016-12-16 16:56:16

标签: javascript firebase firebase-realtime-database nosql

我想做的是分页一组项目...... 这或多或少是我在firebase中存储的结构:

pics/ {
     "key_1": {
            "value":"00001"
            },
     "key_2": {
            "value":"00002"
            },
     "key_3": {
            "value":"00002"
            },
     "key_4": {
            "value":"00002"
            },
     "key_5": {
            "value":"00002"
            },
     "key_6": {
            "value":"00002"
            },
     "key_7": {
            "value":"00002"
            },
     "key_8": {
            "value":"00009"
            }
}

我想要做的是每页分页5个项目,如果值等于00002,那么

我是为第一组做的:

firebase.database().ref('/pics').orderByChild('value').equalTo("00002").limitToFirst(5);

这对于下一个:

firebase.database().ref('/pics').orderByChild('value').equalTo("00002", LAST_KEY).limitToFirst(5);

但它只有在我不添加LAST_KEY参数时才有效...但是,如果我将一个字符串与最后一个键放在一起(例如" key_6")它不会工作...

1 个答案:

答案 0 :(得分:0)

当我以这种方式做到这一点时它起作用了......

var usersRef = firebase.database().ref('/pics').orderByChild('value').startAt("00002", (LAST_KEY? LAST_KEY : undefined)).limitToFirst(5);

在此之前,我是用另一种方式做的:

var usersRef = firebase.database().ref('/pics').orderByChild('value');
if(LAST_KEY) usersRef = usersRef.startAt("00002", LAST_KEY);
if(!LAST_KEY) usersRef = usersRef.startAt("00002");
usersRef = usersRef.limitToFirst(5);

现在它有效(我更喜欢它)。