В этом случае вам нужно настроить ваши правила примерно так:

лизую книгу рецептов в Firestore, где каждый пользователь может видеть все рецепты, созданные всеми пользователями, но редактировать или удалять рецепт может только оригинальный автор рецепта. Любой пользователь также может создать новый рецепт.

Моя проблема в том, что я не могу настроить разрешения для подколлекции, чтобы «прослушивать» поле родительского документа подколлекций.

Каждый документ рецепта содержит три вещи. Поле называетсяname где хранится название рецепта, поле называетсяcreatorUID гдеrequest.auth.uid из создателей UID хранится и подмножество называетсяingredients содержащие документы с некоторыми случайными полями.

service cloud.firestore {
  match /databases/{database}/documents {

    function isSignedIn() {
      return request.auth != null;
    }

    match /ListOfRecipes/{recipe} {
        allow read, create: if isSignedIn();
        allow update, delete: if resource.data.creatorUID == request.auth.uid;

        match /{list=**} {
            allow read: if isSignedIn();
            // Should return true if recipe.creatorUID has same value as request.auth.uid
            allow write: if recipe.creatorUID == request.auth.uid;
        }
    }
  }
}

Проблема в том, что с этими правилами это работает только для создания документа рецепта. Подколлекция и ее документы не создаются, так как БД говорит

FirebaseError: [code = access-denied]: отсутствует или недостаточно разрешений. FirebaseError: Отсутствует или недостаточно разрешений.

Звонки осуществляются с клиента Angular и его официальной библиотеки.

Ответы на вопрос(1)

Ваш ответ на вопрос