Могу ли я добавить правила Firestore для каждой имеющейся у меня коллекции?

# #firebase #google-cloud-firestore #firebase-security

Вопрос:

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

     rules_version = '2';
    service cloud.firestore {
        match /databases/{database}/documents{
            match /users/{user} {
                allow read, write, update, delete: if 
                    request.auth !=null
            }
            match /productos/{product} {
                allow read;
                allow write, update, delete:
                    if request.auth !=null
                }
        
            match /business/{business} {
                allow read;
                allow write, update, delete: if 
                    request.auth !=null
            }
            match /orders/{order} {
                allow write, update, delete: if 
                    request.auth !=null
                allow read;
            }
        }
    }

    match /business/{business} {
        allow read;
        allow write, update, delete: if 
            request.auth !=null
    }
    match /orders/{order} {
        allow write, update, delete: if 
            request.auth !=null
        allow read;
    }
  }
}
 

это то, что я пытаюсь сделать, и то, что я видел в Интернете, но это просто не работает

Комментарии:

1. Частичное объяснение ниже. Кроме того, трудно сказать, что не работает, так как правила сами по себе еще ничего не делают. Можете ли вы отредактировать вопрос, чтобы включить минимальный код, необходимый для воспроизведения неожиданного отклонения, включая подтверждение того, что условия в ваших правилах выполнены (например, регистрация текущего пользователя непосредственно перед доступом к базе данных).

2. Я уже решил проблему, я не знал, что должен указывать полный путь к коллекциям в каждом заявлении о совпадении

Ответ №1:

Совпадения являются иерархическими, поэтому все они должны быть под match /databases/{database}/documents{ , чтобы соответствовать чему-либо в вашей базе данных. Таким образом, последние два match утверждения в ваших правилах не будут работать, если вы не добавите в путь префикс /databases/{database}/documents .

Комментарии:

1. О Боже, большое тебе спасибо! это сработало идеально

2. Я пытался, но моя учетная запись очень новая, и у меня все еще нет необходимой репутации 🙁