В запросе Firestore отказано по запросу - PullRequest
0 голосов
/ 12 июня 2018

Я начал пробовать Firebase и Firestore и столкнулся с проблемой.Всякий раз, когда я настраиваю свои Правила и пытаюсь запросить документы, я получаю ошибку об отказе в разрешении, но я не вижу смысла, почему это отказано ...

Вот мои Правила:

service cloud.firestore {
   match /databases/{database}/documents {
      match /users/{user} {
        allow write: if request.auth.uid == resource.data.uid;
        allow read: if request.auth.uid != null;
        allow create: if request.auth.uid != null;
      }

   function userMightRead() {
       return (
       resource.data.viewers[request.auth.uid] != null || 
       resource.data.participants[request.auth.uid] != null || 
       request.auth.uid == resource.data.owner
     );
   }

   function userMightWrite() {
       return (
          resource.data.participants[request.auth.uid] != null || 
          request.auth.uid == resource.data.owner
       );
   }

   match /projects/{project} {
     allow create: if request.auth.uid != null;
     allow read: if userMightRead();
     allow write: if userMightWrite();
   }
  }
}

Мой запрос в JS:

db.collection('projects')
    .where('viewer.' + this.user.uid, '==', true)
    .onSnapshot(snapshot => {
        let projects = [];
        snapshot.forEach(projectDoc => {
            projects.push({
                tasks: [],
                uid: projectDoc.id,
                ...projectDoc.data(),
                ref: projectDoc,
            });
        });
        this.projects.viewer = projects;

        this.loaded = true;
    }, (error) => {
        console.error("Couldn't fetch 'viewer' Projects!", error);
        alert(error.message);
    });

И текущие данные в коллекции "проектов":

name: 'StatisticTool',
owner: '4UJFZOgQExUlqpYAToScWEh2GsA3'
participants: {
    4UJFZOgQExUlqpYAToScWEh2GsA3: true
},
viewers: {
    4UJFZOgQExUlqpYAToScWEh2GsA3: true
},

РЕДАКТИРОВАТЬ: пользователь, пытающийся получить доступ к документам, имеетUID: 4UJFZOgQExUlqpYAToScWEh2GsA3

...