Я пытаюсь динамически изменить запрос на firestore на основе значения из хранилища svelte.
Представление в настоящее время обновляется значением из хранилища selectedYear
, но если значение обновляется, оно не распространяется в новом запросе.
Что я должен изменить, чтобы сделать query
/ books
обновляется всякий раз, когда year
обновляется?
Это код, который я сейчас использую:
<script>
import { getContext } from "svelte";
import BookView from "./BookView.svelte";
import { db } from "./firebase";
import { collectionData } from "rxfire/firestore";
import { startWith } from "rxjs/operators";
import { selectedYear } from "./store.js";
let year = 2030;
const unSub = selectedYear.subscribe(value => {
console.log(value);
year = value;
});
let startDate = new Date(year, 0, 1);
let endDate = new Date(year + 1, 0, 1);
// Query requires an index, see screenshot below
const query = db
.collection("books")
.where("updateDate", ">=", startDate)
.where("updateDate", "<", endDate)
.orderBy("updateDate", "desc");
let books = collectionData(query, "title").pipe(startWith([]));
</script>
<style>
input {
display: block;
}
</style>
{#each $books as book}
<BookView {book} />
{/each}