Firestore: отсутствует или недостаточно разрешений при попытке добавить новую подколлекцию - PullRequest
1 голос
/ 16 октября 2019

В настоящее время у меня есть несколько основных правил для доступа к моей базе данных пожарного депо. Правила подробно описаны ниже. Может кто-нибудь помочь мне понять, почему второй блок кода вызывает ошибку разрешений? Я пытаюсь добавить изображение в коллекцию, которая еще не существует. Спасибо

rules_version = '2';
service cloud.firestore {
    match /databases/{database}/documents {
        match /projects/{project} {
            allow read, write: if request.auth.uid != null
        }
        match /users/{userId} {
            allow create
            allow read: if request.auth.uid != null
            allow write: if request.auth.uid == userId
        }
    match /notifications/{notification} {

            allow read: if request.auth.uid != null

        }

    }
}

А вот мой код приложения:

await firestore.add(
      {
        collection: "users",
        doc: user.uid,
        subcollections: [{ collection: "photos" }]
      },
      {
        name: imageName,
        url: downloadURL
      }
    );

1 Ответ

1 голос
/ 16 октября 2019

Я ничего не знаю о "reduxfirestore", но похоже, что вы пытаетесь записать подколлекцию под пользователями. Ваши правила безопасности ничего не говорят о документах во вложенных коллекциях, поэтому все эти запросы будут отклонены. Если вы хотите иметь возможность читать и писать документы, правила должны совпадать с их полными путями, например:

match /users/{uid}/photos/{pid} { ... }

Чтение и запись в консоли всегда работает, так как она обходит правила безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...