Получить ребенка только тогда, когда значение изменилось - PullRequest
0 голосов
/ 05 марта 2019

Я работаю над своим первым приложением с Vue и Firebase.

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

На другой странице (административной) вы решаете,этот пост будет опубликован или не изменяет статус на true или false.Итак:

 reading() {
            this.postRef.on('child_added', snapshot => {
                this.posts.push(snapshot.val());
                this.key.push(snapshot.key);
            }), 
changeStatus(index) {
            let key = this.key[index]
            this.posts[index].status = true;
            firebase.database().ref('posts/'+ key +'/status').set('true')
        },

Как только статус станет истинным, посты должны быть видны на странице стены.

Как я могу получить только ребенка, который имеет статус == true в режиме реального времени в настенная страница ?Прямо сейчас я использую этот метод:

 reading() {
            this.postRef.on('child_added', snapshot => {
                this.posts.push(snapshot.val());
                this.key.push(snapshot.key);
            }) 

И в шаблоне:

 <v-layout row wrap justify-center v-for="(item, index) in posts">

Я пробовал с v-if = "item.status == true", ноМне нужно постоянно обновлять страницу, чтобы увидеть новые сообщения.

Здесь моя БД

enter image description here

1 Ответ

0 голосов
/ 05 марта 2019

Вместо использования метода on() для наблюдения за событиями в узле весь postRef, вы должны фильтровать данные, как описано здесь: https://firebase.google.com/docs/database/web/lists-of-data#filtering_data

Таким образом, вы можетесделать что-то вроде следующего, чтобы отфильтровать данные и прослушивать только события, которые соответствуют изменению с status == false на status == true:

reading() {
            this.postRef.orderByChild('status').equalTo(true).on('child_added', snapshot => {
                this.posts.push(snapshot.val());
                this.key.push(snapshot.key);
            })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...