// obj === parsed.d.b.q 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; };