Обновление запроса firestore с помощью rxfire и сохранение значения динамически в svelte - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь динамически изменить запрос на 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}

1 Ответ

1 голос
/ 16 января 2020

Ваш запрос не реагирует.

Вы можете использовать производное хранилище. Где результат (запрос rxFire) зависит от выбранного года. У меня был такой же вопрос и я ответил на него здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...