>  Q&A  >  본문

Supabase - 무한한 가치와 동일

<p>인증 흐름의 경우 미들웨어에서 <code>.eq</code> 문의 값을 일치시키려고 합니다. 일반 사용자는 자신이 작성한 게시물만 볼 수 있습니다. 관리자는 모든 게시물을 볼 수 있습니다. </p> <pre class="brush:js;toolbar:false;">const userMatcher = user.role === "admin" ? "*" : user.id; const { data: post } = 수파베이스 대기 .from("게시물") .선택하다("*") .eq("id", id) .eq("userId", userMatcher) .하나의(); </pre> <p>여기에서는 "*" 일치가 아무런 효과가 없습니다. 가능하다면 이 코드를 깔끔하게 유지하고 관리 사례에 대한 쿼리(사용자 일치자 제외)를 복제하지 않고 싶습니다. </p> <p>가능하다면 가장 깨끗한 방법은 무엇입니까? </p>
P粉741223880P粉741223880432일 전462

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

  • P粉513316221

    P粉5133162212023-08-16 16:57:09

    Michael Coxon님의 답변은 완벽합니다.

    또는 여러 가지를 조합하여 유사한 결과를 얻을 수도 있습니다逻辑运算符.

    다음을 시도해 보세요:

    으아악

    관리자용: user.role === "admin"이므로 userId.eq.true 조건은 항상 true로 평가되어 관리자가 모든 게시물을 볼 수 있습니다.

    다른 사용자의 경우: Condition userId.eq.{userId: user.id} userId가 현재 사용자 ID와 일치하는 게시물만 선택하도록 제한합니다.

    id.eq.${id} 지정된 ID를 가진 게시물이 검색되는지 확인합니다.

    회신하다
    0
  • P粉670838735

    P粉6708387352023-08-16 09:09:46

    쿼리를 분할하면 됩니다. 한 줄로 모든 작업을 수행할 필요는 없습니다.

    으아악

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