>  Q&A  >  본문

Firestore 규칙은 중첩된 컬렉션이 있는 채팅 애플리케이션에 대한 모든 요청을 거부합니다. 내가 뭘 잘못했나요?

현재 채팅 앱을 구축 중인데 Firebase 규칙에 문제가 있습니다. 사용자가 자신이 참여하지 않은 대화를 볼 수 없도록 제한하고 싶습니다. 그런데 이러한 규칙을 구현하려고 하면 대화가 존재하는지 확인해봐도 접근이 거부되는 것 같습니다. 사용자가 데이터베이스의 모든 대화가 아닌 자신이 속한 대화만 볼 수 있도록 Firebase 규칙을 올바르게 구성하려면 어떻게 해야 하나요?

이것은 제가 대화에만 구현하려고 하는 규칙 세트입니다.

으아아아

액세스가 "최상위 수준"에서 거부되었습니다. 그 부분은 다음과 같습니다.

으아아아

내 생각엔 중첩된 대화가 작동하는 방식과 관련이 있는 것 같은데, 무엇을 바꿔야 할지 모르겠습니다. Google Firebase 문서에서 이에 대해 읽으려고 했지만 이와 관련된 내용을 찾을 수 없습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있으면 알려주시기 바랍니다. 감사해요!

여러 "규칙 세트"를 사용하여 작동하도록 시도해 보았습니다. 존재() 함수에서는 항상 실패합니다.

저도 이 방법을 시도했지만 작동하지 않는 것 같습니다.

으아아아

Vue.js에서 사용하는 쿼리는 다음과 같습니다.

으으으으

P粉627136450P粉627136450407일 전507

모든 응답(1)나는 대답할 것이다

  • P粉459578805

    P粉4595788052023-09-09 14:03:04

    이 실패를 유발한 실행 중인 쿼리를 공유하지 않았지만 Firestore 규칙은 필터가 아닙니다를 기억하는 것이 중요합니다.

    문의가 다음과 같은 경우:

    으아악

    Firestore가 true 的对话,那么这是行不通的。 Firestore 将发现某些对话文档不会评估为true로 평가되는 규칙만 반환할 것으로 예상하면 전체 쿼리가 실패합니다.

    규칙이 평가되도록 실행하는 쿼리는 규칙이 true로 평가되는 대화만 확인해야 합니다. 예:

    으아악

    공식 Firestore 규칙 문서에서 찾을 수 있습니다.

    회신하다
    0
  • 취소회신하다