• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 파이어베이스 게시판이 따로 없어서 여기에 질문남깁니다...

파이어베이스 게시판이 따로 없어서 여기에 질문남깁니다...

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #51703

    인포바인
    참가자
    사진이 용량 문제로 첨부되지 않아서 글로 남깁니다...
    
    채팅방 중복 개설을 막기위해 
    
    '(로그인된 유저의 uid, 게시물 게시자의 uid)' 모두를 포함하고 있는 문서가 chatroom 컬렉션 내에 존재하지 않는다면, 채팅방 문서를 생성해라!
    
    라는 코드를 작성하고 싶은데요..
    
    포함하고 있는지 여부를 쿼리문을 날려서 검사하고 싶은데, 하나의 필드에서 여러 개의 값을 통해 검증 할수가 있는지 궁금합니다.
    
    
    
    #51729

    codingapple
    키 마스터
    https://firebase.google.com/docs/firestore/query-data/queries#array-contains-any
    array-contains-any 쓰면 array로 저장된 자료를 검사할 수 있을걸요 
    .where() 2번 연달아 붙일 수도 있습니다
    #51903

    인포바인
    참가자
    덕분에 몇시간 싸우다가 해결했습니다 !!!
    조만간에 만든거 평가받으러 찾아갈게요 고맙습니다
    #60248

    김진
    참가자
    혹시 어떻게 해결하셨나요? ㅜㅜ
    #60547

    인포바인
    참가자

    잘 짠 코드인지는 의문이 들고 있으나 .where() 연달아 붙이는 방식으로 해결했습니다

    async function checkOverlap() {
     
    const dbData = db
     
    .collection("chatroom")
     
    .where("who", "array-contains", state.userUid)
     
    .where("product", "==", data.상품명)
     
    .get();
     
    const result = await dbData;
     
    console.log(result);
     
    if (result.size === 0) {
     
    db.collection("chatroom")
     
    .add({
     
    who: [state.userUid, data.uid],
     
    date: new Date(),
     
    product: data.상품명,
     
    })
     
    .then(() => {
     
    console.log("새로운 채팅방 개설 성공!");
     
    navigate(`/chat/${state.userUid}`);
     
    });
     
    } else {
     
    console.log("이미 개설된 채팅방이 있습니다");
     
    navigate(`/chat/${state.userUid}`);
     
    }
     
    }

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠