Я занимаюсь разработкой приложения, в котором мне нужно, чтобы набор пользователей (сотрудников), принадлежащих к группе (магазину), мог читать только из таблицы «Клиенты», если у этих клиентов есть заказ, размещенный сотрудником в тот же магазин.
Пока это моя структура (верхний уровень - коллекции):
Users: [
{id: 1, name: "John", store: "a"},
{id: 2, name: "Jane", store: "a"},
{id: 3, name: "Charles", store: "b"},
],
Stores: [
{id: "a", name: "Store A"},
{id: "b", name: "Store B"},
],
Customers: [
{id: "1", name: "Customer 1", ...data},
{id: "2", name: "Customer 2", ...data}
],
Orders: [
{id: "001", customer: "/Customers/1", employee: "/Users/1"},
{id: "002", customer: "/Customers/2", employee: "/Users/3"}
]
В этом примере Джон и Джейн должны видеть Клиента 1 , но не Клиента 2, а Чарльз должен иметь возможность видеть Клиента 2 , но не Клиента 1.
Я пытался создать функцию для этого, например:
function canSeeCustomers() {
if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.store == ?
}
Но я не знаю, как проверить поле store в коллекции Orders .
Есть ли способ сделать это? Или мне лучше провести рефакторинг структуры БД, чтобы Users был вложенным документом Stores ?