Я пытаюсь получить данные из firestore на основе двух полей (localitate: string, buget: integer).
Запрос становится довольно подробным и все еще не работает должным образом ..
function get_collection(){
let ref = firebase.firestore()
if (store.form_data.optiune === "camera") {
ref = ref.collection("listing")
} else if (store.form_data.optiune === "coleg") {
ref = ref.collection("user")
}
return ref
}
function build_query(){
let ref = get_collection()
let localitate = store.form_data.localitate
let buget = Number(store.form_data.buget)
// Build query
if (localitate && buget){
console.info("Filtru localitate && buget: ", localitate, buget)
ref = ref.where("localitate", "in", [localitate]).where("buget", "<=", buget)
}
else if (localitate){
console.info("Filtru localitate: ", localitate)
ref = ref.where("localitate", "in", [localitate])
}
else if (buget){
console.info("Filtru buget: ", buget)
ref = ref.where("buget", "<=", buget)
}
// Add limit of items
if (store.last_ref === undefined) {
ref = ref.limit(items_per_page)
}
console.info("Last ref is ", store.last_ref)
if (localitate && store.last_ref !== undefined) {
ref = ref.orderBy(firebase.firestore.FieldPath.documentId())
.startAfter(store.last_ref)
.limit(items_per_page)
}
else if (buget && store.last_ref !== undefined) {
ref = ref.orderBy("buget")
.startAfter(store.last_ref)
.limit(items_per_page)
}
return ref
}
Как сохранить лимит элементов, попадающих в каждый get()
, а также добавить правильную функциональность фильтра в коллекции «перечисление» и «coleg»?