【问题标题】:startAt nor equalTo are working in firebasestartAt 和 equalTo 在 firebase 中工作
【发布时间】:2017-08-07 12:09:43
【问题描述】:

我想做的是对一组项目进行分页... 这或多或少是我存储在 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”)放在一起,它就不起作用......

【问题讨论】:

    标签: javascript firebase firebase-realtime-database nosql


    【解决方案1】:

    当我这样做时,它以某种方式工作......

    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);
    

    现在它可以工作了(我更喜欢它)。

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      相关资源
      最近更新 更多