как применять правила безопасности для конкретных коллекций - PullRequest
0 голосов
/ 06 сентября 2018

У меня вопрос по правилам безопасности.

Я знаю, что мы можем сделать это, чтобы неавторизованные пользователи могли изменить любой узел в Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

Что если я хочу удалить это предупреждение только из определенных корневых коллекций?

Я имею в виду, что у меня есть 2 корневых коллекции, которые называются Tracking, Incoming

Каждый может написать или прочитать, так как для них действительно не требуется аутентификация. Но для всех остальных коллекций чтение и запись должны выполняться только аутентифицированными пользователями.

Как мне этого добиться?

1 Ответ

0 голосов
/ 06 сентября 2018

Просто вызовите их и дайте доступ. Самые разрешающие правила будут преобладать над всеми остальными. Здесь каждый имеет полный доступ к документам в коллекции под названием all-access:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
    match /all-access/{id} {
      allow read, write: if true;
    }
  }
}

Но вы можете подумать, действительно ли это хорошая идея. С помощью этих правил любой может вложить в коллекцию миллиарды документов. Тщательно продумайте, что вы хотите, чтобы каждый мог здесь делать.

...