Правила безопасности Firebase Firestore не работают - PullRequest
0 голосов
/ 09 мая 2020

enter image description here

У меня действительно простая база данных firestore, которая выглядит как на изображении выше.

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

Я пробовал:

rules_version = '2';
service cloud.firestore {
  match /users/{user} {
   allow read, write: if request.auth.uid == user
   match / {docs = **} {
      allow read, write: if request.auth.uid == user
   }
 }
}

Я также пробовал:

rules_version = '2';
service cloud.firestore {
 match /users/{user} {
   allow read, write: if request.auth.uid == user
   match / {docs = **} {
      allow read, write: if request.auth.uid == user
   }
 }
}

Я также пробовал :

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId}/{documents=**} {
      allow read, write: if isOwner(userId);
    }
  }

  function isOwner(userId) {
    return request.auth.uid == userId;
  }
}

Это не работает:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /sessions/{sessionID} {
      allow read, write: if request.auth != null;
    }
  }
}

То же самое:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /sessions/{sessionsID} {
      allow read, write: if request.auth != null;
    }
  }
}

1 Ответ

1 голос
/ 09 мая 2020

Я попытался сравнить свои правила со структурой вашей базы данных.

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /sessions/{sessionID=**} {
      allow read, write: if request.auth.uid != null;
    }
}

Теперь это должно разрешать доступ только зарегистрированным пользователям.

...