У меня есть приложение с пользователями и заданиями.
Каждое задание принадлежит одному пользователю. Только этот Пользователь может редактировать задание.
Любой пользователь может подать заявку на любое задание. Когда пользователь применяет к заданию, я хочу добавить этого пользователя в массив job.appliedCandidates
. В основном структура выглядит так:
Jobs
- Job1
- owner = User1
- candidatesApplied
- User2
- User3
Таким образом, User1 владеет Job1. Допустим, User4 приходит и применяется к работе. Теперь я хочу добавить его к candidatesApplied
. Но у него нет прав на редактирование этой работы, потому что он не является владельцем!
И если я дам ему доступ для редактирования, он сможет изменить все данные работы. Не то, что я хочу.
Я уверен, что в Firestore вы можете создавать правила для каждого поля, но это все равно не решает мою проблему. Если User4 может редактировать job1.candidatesApplied
, это означает, что у него есть доступ к удалению других пользователей из массива!
Я почти уверен, что настройка массива, которую я собираюсь выполнить, не подходит для go , Одна идея состоит в том, чтобы «кандидаты» были вложенной коллекцией задания и позволяли любому пользователю создавать запись в этой вложенной коллекции, но не делать ничего другого. Но я не уверен, что это правильно.
Как лучше всего справиться с этим?