Search code examples
firebasegoogle-cloud-platformgoogle-cloud-firestorefirebase-security

Your Cloud Firestore database is denying client requests and will continue to do so until you update your security rules


Following my current security rule for Firestore for which it is denying my request:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if 
            request.time < timestamp.date(2022, 4, 7);
          
    }
  }

Firestore works only when I set write :if true. I tried changing the date but it didn't work.

Following are the combination that I tried:

    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if 
                request.time < timestamp.date(2022, 4, 8);
              
        }
      }
    }
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if 
                request.time < timestamp.date(2022, 4, 8);
              
        }
      }
    }
    rules_version = '2';
        service cloud.firestore {
          match /databases/{database}/documents {
            match /{document=**} {
              allow read, write: if request.auth.uid != null;
                  
            }
          }
        }
    }

Solution

  • These are the right rules:

    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if
              request.time < timestamp.date(2022, 8, 31);
        }
      }
    }
    

    Which will work until the end of the current month.

    Your rules don't work because 2022, 4, 8 represents the 8th of April 2022.