Слушатель Firestore не срабатывает при изменении ссылки внутри коллекции документов - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь заставить addSnapshotListener срабатывать при изменении ссылочного документа внутри другого документа.

У меня есть две таблицы: users и rooms.

Внутри rooms

rooms> {roomId}> room_users (который является коллекцией) есть ссылка на пользователя> [list of id's]> ссылка на пользователя в каждом документе

enter image description here

Используя следующий код, я получаю ссылку на это

fun getInnerCollection(baseCollection: String, baseDoc: String, collection: String): CollectionReference {
     return FirebaseUtil.firestore
          .collection(baseCollection)
          .document(baseDoc)
          .collection(collection)
     }

. К этому я добавляю addSnapshotListener.

* 1027. * Каждый раз, когда я изменяю (добавляю) поле в любом из документов внутри room_users, слушатель срабатывает. Однако, когда я изменил свойство в таблице users, которое связано в документе (например, OMF1JtKgj3PZaEsUkitj900FIYm1 на скриншоте), слушатель не срабатывает. Из-за этого я не знаю, когда что-то меняется в ссылочном документе.

Как я могу заставить слушателя срабатывать, когда изменение происходит внутри ссылочного объекта? Или добавление слушателя к каждому документу - единственное решение?

1 Ответ

0 голосов
/ 17 апреля 2020

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

Если вы хотите прослушать документ, который поступает из поля DocumentReference, вам нужно будет установить sh новый прослушиватель для каждого отдельно.

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