firebase onSnapshot вызывается другими пользователями - PullRequest
0 голосов
/ 13 сентября 2018

Я создаю приложение Firebase, внутри моего приложения у меня есть прослушиватель комментариев в посте, это подколлекция поста документа

 firebase.firestore().collection('posts').doc(post.id).collection('commentaries').orderBy('date', 'desc').limit(12)
        .onSnapshot(function (querySnapshot) {
          let commentaries = []
          console.log(querySnapshot.docChanges())
          querySnapshot.forEach(function (doc) {
            commentaries.push({
              id: doc.id,
              creatorId: doc.data().creatorId,
              commentarie: doc.data().comment,
              creatorPhoto: doc.data().creatorPhoto,
              creatorName: doc.data().creatorName,
              date: doc.data().date
            })
          })
        })

Проблема:

Мой onSnapshot вызывается от ДРУГОГО ПОЛЬЗОВАТЕЛЯ! Если другие пользователи комментируют ДРУГИЕ ПОСТЫ (не post.id), вызывается onSnapshot (как если бы он обнаруживал изменения в «сообщениях» корневой коллекции, а не в подколлекции).

Что-то не так? Мой пользователь получает обновления от всех изменений в коллекции "сообщений" !!!

1 Ответ

0 голосов
/ 13 сентября 2018

Ваш прослушиватель снимков вызывается для всех изменений в коллекции в параметрах запроса.Слушателям все равно, кто вносит изменения в коллекцию.Единственное, что имеет значение, - это результат запроса, и эти результаты будут включать все документы, которые соответствуют ограничениям запроса.

Если это имеет значение для того, кто вы, кто вносит изменения, вам придетсявключите это в измененные данные и измените запрос, чтобы получить только те результаты, которые соответствуют данным.

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