Uncaught Error in snapshot listener:, [FirebaseError: Missing or insufficient permissions.] code example

Example 1: Uncaught Error in onSnapshot: FirebaseError: Missing or insufficient permissions.

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

Example 2: firestore missing or insufficient permissions

//"firestore missing or insufficient permissions" could be because of 
//insufficient read and/or write permissions

//Let's say that a user is not logged in but needs to read landmarks data,
//we should then create a rule to allow the read operation
service cloud.firestore {
  match /databases/{database}/documents {
    // Explicitly allow users to read the collection
    // even if they are not authenticated
    match /landmarks/{landmark} {
    allow read;
    }

    match /cities/{city} {
      allow read, write: if <condition>;
    }
  }
}
//More info on structuring security rules:
//https://firebase.google.com/docs/firestore/security/rules-structure