오류 메시지: Firestore error message: Operator string 'in' is invalid. Valid choices are: <, <=, ==, >, >=, array_contains.
원인: Firestore에서 'in' 연산자를 사용할 때, 해당 연산자를 지원하지 않아서 오류가 발생합니다. 이러한 연산자는 '<', '<=', '==', '>', '>=', 'array_contains'와 같은 다른 연산자로 대체되어야 합니다.
해결: 'in' 연산자를 사용하는 코드를 다음과 같이 수정해야 합니다:
groups = ['AG', 'PA']
docs = db.collection(u'companies').document(company).collection('counts').\
document(count_name).collection('preprocess').\
where('status', '==', 'done').where('statuslayers', '==', 'done').\
where('statuslive', '==', 'created').\
where('load', '==', False).where('group', 'in', [groups]).\
order_by(u'area').stream()
for doc in docs:
print(u'{} => {}'.format(doc.id, doc.to_dict()))
위 코드에서는 'in' 연산자 대신에 '[groups]'와 같은 리스트를 사용하여 해당 필드가 리스트에 포함되어 있는지 확인합니다. 이 방법으로 'in' 연산자를 대체할 수 있습니다.
분석: 이 문제는 Firebase Firestore에서 'in' 연산자를 지원하지 않기 때문에 발생합니다. 이러한 경우에는 대체 가능한 다른 연산자를 사용해야 합니다. 'in' 연산자를 대체하기 위해서는 해당 필드가 리스트에 포함되어 있는지 확인하는 방법을 사용할 수 있습니다.
결론: Firebase Firestore에서 'in' 연산자를 사용할 때 발생하는 오류는 대체 가능한 다른 연산자를 사용하여 해결할 수 있습니다. 이러한 연산자를 대체하기 위해서는 해당 필드가 리스트에 포함되어 있는지 확인하는 방법을 사용할 수 있습니다. 이를 통해 Firebase Firestore에서 데이터를 검색하고 처리하는 데 필요한 기능을 원활하게 수행할 수 있습니다.
'Flutter' 카테고리의 다른 글
setState() called after dispose() [flutter] error (0) | 2023.10.31 |
---|---|
Getting null in Facebook access token [Flutter] error (0) | 2023.10.30 |
No GoRouter found in context [flutter] error (0) | 2023.10.30 |
Flutter Error: Vertical viewport was given unbounded height (0) | 2023.10.17 |
Flutter Error: StreamProvider not updating when user signs out or signs in (0) | 2023.10.16 |
Firebase/Functions Dependency Issue with Flutter and CocoaPods (0) | 2023.10.16 |
Flutter Error: Failed assertion during Widget Lifecycle State Changes (0) | 2023.10.16 |
Flutter Error: Unable to locate Flutter directory or Android SDK (0) | 2023.10.16 |