Search code examples
firebasegoogle-cloud-firestorefirebase-security

Struggling Firestore rules


I'm new to Firestore Rules. All I want is simply check if user id exists within the object. Im reading data using FirestoreRecyclerAdapter like so (query):

 Query query = FirebaseFirestore.getInstance()
                .collection(EVENTS_INFO)
                .whereEqualTo("users." + user.getUid(), true);

Here is how structure looks in Firebase Console (screenshot):

enter image description here

Firestore rules here:

        service cloud.firestore {
           match /databases/{database}/documents {

              function isSignedIn() {
                 return request.auth.uid != null;
              }

              match /events/{event} {

                 function isUser() {
                    return isSignedIn() && resourse.data.users[request.auth.uid] == true;
                 }

                 allow read: if isUser();
              }
           }

As there is no simulator I cant fast get the issue. allow read: if true works as desired. Any clues?


Solution

  • There is an issue with this line...

    resourse.data.users[request.auth.uid] == true;

    resourse should be written resource