Skip to content

Instantly share code, notes, and snippets.

@yingray
Last active March 7, 2019 16:43
Show Gist options
  • Select an option

  • Save yingray/2c068ebee0beb5168f206d164433649f to your computer and use it in GitHub Desktop.

Select an option

Save yingray/2c068ebee0beb5168f206d164433649f to your computer and use it in GitHub Desktop.

Revisions

  1. yingray revised this gist Mar 7, 2019. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions paginateRef.js
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,4 @@
    // obj === parsed.d.b.q
    const paginateRef = (ref, obj = {}) => {
    Object.entries(obj).forEach(([key, value]) => {
    switch (key) {
  2. yingray created this gist Mar 7, 2019.
    32 changes: 32 additions & 0 deletions paginateRef.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    const paginateRef = (ref, obj = {}) => {
    Object.entries(obj).forEach(([key, value]) => {
    switch (key) {
    case "sp": {
    ref = ref.startAt(value);
    break;
    }
    case "ep": {
    ref = ref.endAt(value);
    break;
    }
    case "i": {
    if (value === ".key") {
    ref = ref.orderByKey();
    } else if (value === ".value") {
    ref = ref.orderByValue();
    } else {
    ref = ref.orderByChild(value);
    }
    break;
    }
    case "l": {
    ref = obj.vf === "l" ? ref.limitToFirst(value) : ref.limitToLast(value);
    break;
    }
    default: {
    break;
    }
    }
    });
    return ref;
    };