В примерах в документах с использованием firebase подразумевается ручное обновление правил безопасности firebase. Как правила безопасности могут быть модифицированы программно для поддержки реальных приложений в реальном мире? В используемом случае, который я рассматриваю, требование заключается в том, чтобы пользователь мог приглашать других пользователей для совместной работы/обмена выбранными данными и предоставления/отзыва доступа к соавторам. Как это можно сделать с помощью firebase?Как программно изменить правила безопасности в Firebase?
ответ
Вы фактически не должны программно изменять свои правила безопасности. Вы должны думать о них как код и изменять их только во время развертывания.
Если то, что вы пытаетесь сделать, это изменить то, что на самом деле разрешено делать пользователям, вы должны сделать это, написав правила безопасности, которые зависят от данных в вашей Firebase.
Например, можно сказать, что вы хотите ограничить доступ к части данных только пользователям из определенной группы. Вместо изменения правил безопасности каждый раз, когда членство в группе менялось, вы просто сохраняете группу в Firebase и проверяете правила безопасности, чтобы убедиться, что текущий пользователь находится в этой группе, прежде чем разрешить доступ.
".read" : "root.child('groups').child($groupID).child(auth.userid).exists()"
Таким образом, членство в любое время группа изменения, пользователи автоматически получают доступ к данным, они должны иметь возможность видеть.
Для более сложного примера правил безопасности ознакомьтесь с файлом rules.json в Firefeed.
Но как будут обрабатываться динамически добавленные данные?
Вы бы сделали это, используя дочерний узел $
. Это выглядит примерно так:
Вот моя база данных
users
- userIDHere
- name: John Doe
- whatever: who knows
И вы должны установить правила для каждого пользователя, делая это:
{
"rules": {
"users": {
"$user": {
// whatever rules you want here, and you can reference $user to get the user's id.
}
}
}
}
Надежда это то, что вы просили, и надежда это помогает!
- 1. firebase - правила безопасности REST
- 2. Правила безопасности Firebase
- 3. Правила безопасности с Firebase
- 4. Правила безопасности Firebase Вложение
- 5. Являются ли правила безопасности безопасности Firebase атомарными?
- 6. Правила безопасности безопасности хранения Firebase игнорируются
- 7. Правила безопасности Firebase для хранения
- 8. Firebase безопасности правила настраиваемого поля
- 9. Правила безопасности базы данных Firebase
- 10. Правила безопасности Firebase разрешают разрешение?
- 11. Правила безопасности Firebase без аутентификации Firebase
- 12. правила безопасности неудачи с Firebase
- 13. Основные правила безопасности с Firebase
- 14. Правила безопасности Firebase Правильный формат
- 15. Как отлаживать правила и разрешения безопасности Firebase
- 16. правила безопасности на основе срока в Firebase
- 17. Правила Firebase безопасности: Guard против зарезервированных символов
- 18. Правила безопасности Firebase - предотвратить повторный запрос друга
- 19. правила безопасности firebase не работают должным образом
- 20. Firebase Правила безопасности для вложенной структуры данных
- 21. Правила Firebase безопасности: .indexOn уникальные идентификаторы
- 22. Firebase: правила безопасности для совместного приложения
- 23. Правила безопасности Firebase для приложения nodejs
- 24. Firebase правила безопасности, чтобы дети условные
- 25. Firebase Правила безопасности Private User Data
- 26. Правила безопасности Firebase, устанавливающие детей не читаемыми?
- 27. Правила безопасности Firebase: публичные и частные данные
- 28. Правила безопасности Firebase: Неизвестная переменная $ requestId2?
- 29. Правила безопасности хранилища Firebase: параметр duration.value
- 30. Структура данных и правила безопасности Firebase
благодарит за быстрый ответ. Использование групп для обработки динамически обновляемого пользователя имеет смысл. Но как будут обрабатываться динамически добавленные данные? Например, пользователь может создать проект под/users/userid/projects/projectid, а затем хочет предоставить доступ для чтения для этого конкретного проекта группе соавторов. Как это будет достигнуто с помощью Firebase? – Jarnal
Настройка группы была всего лишь примером. Вам не нужно иметь группы - вы можете зависеть от любых данных, которые вам нравятся. Например, сам набор данных может иметь «читаемый» флаг, который, если он установлен в true, позволяет любому читать его. Или у него может быть «читаемый» список пользователей, которым разрешено его использовать. Etc ... –
@AndrewLee, у меня более сложный случай: я создаю комнаты (ветви) динамически, и я хочу ограничить каждую комнату только конкретными сотрудниками Х, блокируя всех остальных от написания там. Как я могу указать эти права доступа при создании комнаты? Обратите внимание, что могут быть миллионы разных комнат. –