Правило Firestore для обеспечения динамических путей к полям - PullRequest
0 голосов
/ 10 сентября 2018

С учетом документов Firestore этого формата, где user-100 и user-101 являются идентификаторами пользователя:

{
    name: "Gizmo 123",
    roles: {
        "user-100": {
            level: 10
        },
        "user-101": {
            level: 20
        },
    }
}

Есть ли способ написать правило безопасности Firestore, которое заставляет обновления этого документа ограничиваться обновлением levels только отдельных пользователей?

Обновления будут содержать пути к полям с динамическими полями («пользователь-100», «пользователь-103»), например:

  • Действительный обновление: { "roles.user-100.level": 20 }
  • Другое Действительное обновление: { "roles.user-103.level": 20 }

Запрещено обновлять другие поля:

  • Неверно Обновление: { "name": "Bubba" }
  • Другое недействительно обновление: { "roles": null }
...