Разрешить пользователям из другой коллекции просматривать другой поток - PullRequest
0 голосов
/ 13 июля 2020

У меня есть коллекция заказов. Он содержит поле под названием locationId. И я запрашиваю это поле, используя isEqualTo. Место проведения - это uid пользователя firebase. Еще у меня есть коллекция заведений. Он содержит этот идентификатор места проведения, а также список идентификаторов VenueAdmins (эти идентификаторы также являются пользовательскими идентификаторами firebase). Приложение является приложением для точки продаж (pos). Мне нужно запросить коллекции заказов, чтобы valueAdmins и locationId увидели правильный поток. Достаточно легко запросить с помощью места проведения .. venueId,isEqualto, uid. Мне интересно, как лучше всего разрешить администратору места встречи также видеть поток.

|-Orders   // collection
    order.   //doc
     venueId:'2344567788999999' 


|-Venues   // collection
    venue.   //doc
     venueAdmin: ['3333333333333','55555555555555555']
     venueId:'2344567788999999'

Мой конструктор запросов: queryBuilder: (query) => query.where('venue.id', isEqualTo: uid)

1 Ответ

1 голос
/ 13 июля 2020

Firestore не имеет возможности «объединять» документы из разных коллекций в одном запросе. Один запрос может одновременно рассматривать только документы в одной коллекции. Теперь, когда у вас есть структурированные данные, потребуется как минимум два запроса. Во-первых, чтобы найти место проведения, затем, во-вторых, чтобы найти заказы для администратора в месте проведения. документы для заказа. Если бы в каждом заказе также был список администраторов, то вы могли бы сократить его до одного запроса.

...