-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
.where 사용법
20.09.18 03:02 작성 조회수 87
0
안녕하세요! 강사님 강의 모두 구매하여 유익하게 정말 잘듣고있습니다 강의 복습하며 듣다 질문이 생겨 질문드립니다.
1. where문 안에 조건을 두개 달 수 있는지 궁금합니다
return Firestore.instance.collection('postProduct').where("name", isEqualTo: "김진명" || "이수한").snapshots();
// 오류
이렇게 인스턴스에서 where문에서 조건을 달때 두가지 조건(or또는 and)을 달 수 있는 방법이 있는지 궁금합니다.
예를들어 이름이 김진명이거나 이수환(or)인 document를 fireStore에서 가져오고싶을때
2. 인스턴스를 합치는 방법에 대해 궁금합니다.
var aa = Firestore.instance.collection('postProduct').orderBy('Date',descending: false).snapshots();
var bb = Firestore.instance.collection('postPrduct').orderBy('Date',descending: true).snapshots();
aa + = bb; // 오류
aa.addAll(bb); // 오류
3. 인스턴스를 firestore에서 가져올때 순서를 랜덤하게 섞을 수 있는 메소드가 있는지 궁금합니다.
var bb = Firestore.instance.collection('postPrduct').orderBy(random??).snapshots();
구글링하다 관련된 정보를 못찾아 이렇게 질문 남깁니다. 감사합니다!!
답변을 작성해보세요.
0
오준석
지식공유자2020.09.18
아 위 답변 1. 은 and 연산이었습니다.
or 연산의 경우 https://cloud.google.com/firestore/docs/query-data/queries?hl=ko#in_and_array-contains-any 에서 소개하는 in 이나 array-contains-any 를 사용해야 할 것 같습니다.
flutter에서는 어떤 코드일지는 저도 아직 안 해 봤네요. web이나 java 코드를 참고하면 비슷한 문법이 있을 것 같습니다.
0
오준석
지식공유자2020.09.18
Firestore 문서를 뒤져봐도 Flutter로는 나오지 않아서 답답한 부분이 있습니다.
공식 문서의 웹을 기준으로 참고하시면서 적용하시면 될 듯 합니다.
https://firebase.google.com/docs/firestore/query-data/queries?hl=ko#compound_queries
1. where를 연속으로 사용하면 됩니다.
.where("name", isEqualTo: "김진명").where("name", isEqualTo: "이수환")
2. Firestore 결과인 snapshot 객체를 합칠 수는 없습니다. 각 스냅샷을 List 에 담은 후에 합치셔야 할 것 같습니다.
3. 없습니다. 가지고 온 후에 List 에 담은 후에 섞으셔야 할 것 같습니다.
답변 2