У меня есть объекты в моей Firebase, и я хочу ограничить доступ только к пользователям, на которые ссылаются объекты. Моя структура Firebase выглядит следующим образом:Firebase Security: Только пользователи, на которые ссылается объект, должны прочитать его
- Объект
- object_info
- контакты
- $ contact_id
- user_id
- USER_ROLE
- $ contact_id
- пользователи
- $ user_id
- user_info
- $ user_id
объект/контакты/$ contact_id/user_id ссылки на пользователей/$ user_id
Таким образом, каждый пользователь, который должен иметь доступ выглядит как user_id у одного ребенка из контактов. К сожалению, я не могу найти способ поиска всех детей контактов для определенного user_id. Есть ли способ установить это правило безопасности Firebase, если я должен изменить всю структуру базы данных, чтобы сохранить ее в безопасности?
, к сожалению, я не могу. child data.child («контакты»). child (auth.uid) никогда не будет существовать. Пользовательский ключ в auth.uid хранится на одном слое глубже в контакте, который хранит больше информации, чем пользовательский ключ. Это связано с тем, что мне нужно работать с контактами, которые еще не зарегистрированы, и когда они регистрируются, я могу просто обновить ссылку на пользователя, не обновляя все, связанное с этим контактом. – Alexander
В этом случае это не сработает, и вам нужно будет изменить свою модель данных, чтобы использовать прецедент, который вы пытаетесь реализовать. –
Спасибо! Любые рекомендации по достижению этого? Проблема в том, что если я напрямую ссылаюсь на пользователя, мне придется искать все, связанное с этим объектом, и проверить, появится ли контакт где-нибудь, чтобы обновить ключ контакта. – Alexander