Что эквивалентно on. (Child_added) на firesore? - PullRequest
0 голосов
/ 12 июня 2018

Начало работы с firestore здесь:)

Я хочу получать событие каждый раз, когда документ обновляется или создается внутри коллекции.Я хочу получить только 1 документ ... один обновленный / созданный / удаленный ... и т. Д. Я не хочу получать коллекцию отверстий для каждого изменения.

Аналогично тому, как .on("child_added") работал в реальном временибаза данных.

Например:

// logs the entire collection.
db.collection("categories").onShapshot(snap => console.log(snap));

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

Я хочу использоватьэто для обновления / удаления / создания этого документа в DOM в режиме реального времени.

Я не вижу, как это сделать на основе документов Firebase

Эта супер важная и основная функция намеренно больше не поддерживается?

Или я просто не вижу ничего очевидного ... Заметьте, у меня нет ничего конкретного для запроса.

Я просто хочу вернуть определенную категорию, как только она будет создана.Спасибо:)

1 Ответ

0 голосов
/ 12 июня 2018

При изменении данных для вашего запроса вы вызываетесь со всем новым набором данных для этого запроса в QuerySnapshot.Но в этом снимке информация о том, что изменилось.Если вы хотите что-то сделать только с новыми добавленными документами, проверьте, был ли документ добавлен с этим образцом из документации :

db.collection("cities").where("state", "==", "CA")
    .onSnapshot(function(snapshot) {
        snapshot.docChanges().forEach(function(change) {
            if (change.type === "added") {
                console.log("New city: ", change.doc.data());
                // This is equivalent to child_added
            }
            if (change.type === "modified") {
                console.log("Modified city: ", change.doc.data());
                // This is equivalent to child_changed
            }
            if (change.type === "removed") {
                console.log("Removed city: ", change.doc.data());
                // This is equivalent to child_removed
            }
        });
    });

Обратите внимание, чтонемодифицированные данные для этого слушателя считываются из локального кэша, поэтому их не нужно будет перечитывать с сервера.

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