Firebase-firestore security rules per document flutter

105

I think that error is thrown by documents where status is not set to true. Try adding a where clause in your query which fetches documents with status as true.

query:
      FirebaseFirestore.instance.collection('members').where("status", isEqualTo: true).orderBy('title')

When it comes to showing an author their own requests, you can add a where which checks if author ID is equal to currently logged in user's ID.

query:
      FirebaseFirestore.instance.collection('members').where("authorId", isEqualTo: "currentUserId").orderBy('title')

Also try wrapping the conditions with logical or in a bracket:

allow read: if authenticated() && (resource.data.status == true || author(resource.data.creatorid) || admin());
Share:
105
Noobdeveloper
Author by

Noobdeveloper

Updated on December 31, 2022

Comments

  • Noobdeveloper
    Noobdeveloper over 1 year

    Firebase-Firestore denying all requests instead of rejecting one specific document which does not meet the data Firebase-Firestore security rules

    allow read: if authenticated() && resource.data.status == true || author(resource.data.creatorid) || admin();
    

    what I am trying to achieve is only status = true documents will appear

    Error

    Unhandled Exception: [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation.
    

    Using package paginate_firestore flutter

    PaginateFirestore(
      itemsPerPage: 5,
      key: key,
      shrinkWrap: true,
      physics: ClampingScrollPhysics(),
      itemBuilderType: PaginateBuilderType.listView,
      itemBuilder: (index, context, documentSnapshot) {
        final data = documentSnapshot.data() as Map?;
        return MainComponent(
          data: data,
        );
      },
      query:
          FirebaseFirestore.instance.collection('members').orderBy('title'),
      isLive: false,
    );
    

    zero document retrived from firestore. screen is just showing a loading

  • Noobdeveloper
    Noobdeveloper over 2 years
    Can you please look at this stackoverflow.com/questions/68945869/…