После ваших ответов в комментариях, а именно:
- Требование: «Предоставлять гостям право только на просмотр, но не создавать / изменять» и «ограничивать их доступ толькомаркеры, а не на другие детали "
- Вы используете базу данных реального времени
, вы можете принять следующий подход:
Во-первых в вашей базе данных разделите контент, который могут видеть аутентифицированные пользователи (маркеры и другие детали ), и контент, который могут видеть гости (только маркеры).Для этого вы должны продублировать данные маркеров, как показано ниже (это просто пример, поскольку вы не поделились структурой данных):
- fullData <- This node and all children should be only accessible by authenticated users
- ID1
- lat: ....
- long: ....
- otherDetail1: ...
- otherDetail2: ...
- ID2
- lat: ....
- long: ....
- otherDetail1: ...
- otherDetail2: ...
....
- markersOnly <- This node and all children can be read by everybody
- ID1
- lat: ....
- long: ....
- ID2
- lat: ....
- long: ....
....
Чтобы синхронизировать два узла, вы должны использоватьupdate()
метод, как описано здесь , который позволяет «одновременное обновление нескольких местоположений в дереве JSON с помощью одиночного вызова ».
Во-вторых , вы устанавливаете свои правила безопасности таким образом, что вы ограничиваете право создавать / изменять / читать данные в узле fullData
только для аутентифицированных пользователей, но разрешаете всем читать данные в узле markersOnly
(и разрешать только авторизованным пользователям создавать / изменять).