Как запросить firebase в режиме только для чтения - PullRequest
0 голосов
/ 31 марта 2020

У меня есть некоторые данные в базе данных, которые я хочу запросить. У моего firebase есть настройки безопасности по умолчанию, которые доступны только для чтения. Однако, когда я пытаюсь запросить данные, как показано ниже

this.firestore.collection('myCollection').valueChanges().pipe().subscribe(x => {
  console.log;
});

this.firestore.collection('myCollection').get().subscribe(x => {
  console.log;
});

, я получаю ошибку Missing or insufficient permissions. В соответствии с моим занижением, это не должно иметь место, поскольку я просто читаю данные. Также я, вероятно, должен упомянуть, что я использую @angular/fire

Просто для эксперимента я попытался разрешить доступ на запись в базу данных, и это работает таким образом, но я хочу сохранить режим только для чтения.

это мои правила:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Есть идеи?

1 Ответ

1 голос
/ 31 марта 2020

С

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

вы не разрешаете доступ только для чтения, поскольку он эквивалентен

....
allow read: if false;   // <- You deny any read here
allow write: if false;
....

Вам необходимо изменить свои правила следующим образом:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if true;
      allow write: if false;
    }
  }
}

Дополнительная информация в do c, включая видео в верхней части do c.

...