존재하지 않는 문서 키에 대해 Cloud Firestore를 쿼리하는 방법
옵션 속성을 가진 데이터 모델이 있다고 가정해 보겠습니다.예를 들어 "이름", "성" 및 선택적 "웹 사이트" 속성을 가진 사용자 개체일 수 있습니다.
Cloud Firestore에서는 알려진 웹 사이트가 있는 사용자 문서에만 "웹 사이트" 속성이 설정되며, 다른 모든 사용자 문서에는 이 속성이 없습니다.
제 질문은 "웹 사이트" 속성 없이 모든 사용자 문서를 조회하는 방법입니다.
문서는 다음과 같은 속성을 포함할 수 있습니다.null
값 데이터 유형(데이터 유형 설명서 참조).그러면 쿼리를 구성하여 결과를 제한할 수 있습니다.website
재산은null
.
이는 누락된 속성과 동일하지 않지만 사용자 지정 개체를 사용하여 Firestore에 데이터를 쓰면 비어 있는 속성이 자동으로 저장됩니다.null
전혀 그렇지 않은 것보다는수동/프로그래밍으로 다음을 작성할 수도 있습니다.null
값을 입력합니다.
Android에서 다음을 사용하여 테스트했습니다.
FirebaseFirestore.getInstance().collection("test").whereEqualTo("website", null).get();
데이터베이스 구조는 다음과 같습니다.
문서만 반환되었습니다.inuwlZOvZNTHuBakS6GV
서류 때문에9Hf7uwORiiToOKz6zcsX
의 문자열 값을 포함합니다.website
소유물.
당신은 보통 스위프트에서 개발하는 것 같은데, 안타깝게도 사용자 지정 객체는 지원되지 않지만 사용할 수 있습니다.NSNull()
a를 쓰는 것null
Firestore 값입니다.예를 들어, (Swift에 능숙하지 않으므로 문제가 있으면 언제든지 수정하십시오.)
// Writing data
let docData: [String: Any] = [
"firstname": "Example",
"lastname": "User",
"website": NSNull()
]
db.collection("data").document("one").setData(docData) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}
// Querying for null values
let query = db.collection("test").whereField("website", isEqualTo: NSNull())
설명서에는 존재하지 않는 값을 쿼리하는 방법이 나와 있지 않으므로 이 방법이 차선의 방법인 것 같습니다.개선하거나 대안을 제시할 수 있는 사람이 있다면 그렇게 해주시기 바랍니다.
언급URL : https://stackoverflow.com/questions/46806860/how-to-query-cloud-firestore-for-non-existing-keys-of-documents
'code' 카테고리의 다른 글
클래스 속성과 인스턴스 속성의 차이점은 무엇입니까? (0) | 2023.07.17 |
---|---|
파이썬에서 클래스를 설계하려면 어떻게 해야 합니까? (0) | 2023.07.17 |
함수/메소드가 Mock을 사용하여 호출되지 않았음을 주장합니다. (0) | 2023.07.17 |
파이썬에서 어떻게 YAML 매핑을 OrderedDicts로 로드할 수 있습니까? (0) | 2023.07.17 |
입력된 배열이 비어 있는 초기 상태를 입력하고 초기 상태를 설정합니다. (0) | 2023.07.17 |