>

다중 테넌트 앱 컬렉션 그룹 쿼리에 대한 모범 사례는 무엇입니까? 예를 들어 테넌트 고객에 대한 모든 송장을 조회하십시오

/tenant/1/customer/2/invoices

인보이스라는 컬렉션 그룹 인덱스를 생성하고 테넌트 1에 대한 모든인보이스를받을 수 있도록하려면 어떻게해야합니까?

테넌트에 대한 쿼리를 막기 위해 몇 가지 보안 규칙을 설정하려고 시도했지만 여전히 테넌트에 대해 쿼리하고 있었기 때문에 여전히 액세스 거부 오류가 발생했습니다. 올바른 Firestore 규칙은 무엇인가요?

  • 답변 # 1

    Firebase 프로젝트는 다중 테넌트 앱에 적합하지 않습니다. 테넌트마다 다른 프로젝트를 만드는 것이 좋습니다.이렇게하면 향후 많은 문제가 해결됩니다.

    단일 프로젝트에 다중 테넌시가 있어야하는 경우 현재 데이터베이스 구조는 콜렉션 그룹 쿼리에 대해이를 잘 지원하지 않습니다. 컬렉션 그룹은 예외없이항상쿼리하여 지정된 이름의 모든 컬렉션을 쿼리합니다. 규칙은 필터가 아니기 때문에 보안 규칙을 사용하여 결과를 필터링 할 수 없습니다. 필터링은 클라이언트에서만 가능하며 보안 규칙에 의해 확인됩니다. 현재 구조를 사용하면 컬렉션 그룹 쿼리로 쿼리하려는 각 문서에 테넌트의 ID를 저장하고 클라이언트가 결과에 대한 필터로 사용하도록해야합니다.

  • 이전 python - 메소드에 두 개의 데코레이터가있을 때 왜 스핑크스 자동 문서가 데코레이터의 문서 문자열을 출력합니까?
  • 다음 리플렛 마커를 찾을 수 없음 생산 환경 앵귤러 7