당신이 생각하는 것은 그렇지 않습니다. 설명하고 예제를 제공합시다.
문자열 검색을 수행하는 것으로 보입니다. 아마도 하위 문자열 검색 일 수도 있습니다.
Firebase는 부분 문자열 검색 기능을 제공하지 않으며 심지어 문자열 검색은 문자열 검색과 같지 않습니다. 즉, swift와 같은 언어로 사용됩니다.
그래서 우선이 그대로 [A-ZA-Z0-9] * 동일한 문자열 또는 문자로 시작하는 노드를 검색 할 것이라고
queryStarting(atValue: "[a-zA-Z0-9]*")
유효하지 않습니다. 따라서 노드가 다음과 같이 표시되는 경우 :
posts
post_x
description: "[a-zA-Z0-9]* This node would be returned"
일치 할 것입니다.
.startWith: a query that starts with the given string
.endWith: a query ending with a string that starts with the given string
(not the ending part of a string or a substring)
나를 당신의 구조
posts
post_1
description: "This is a post! #thisdoesntwork"
post_2
description: "Heres another post! #neitherdoesthis"
post_2
description: "a"
post_3
description: "n"
그리고 게시물 1, 3을 반환합니다 예를 들어 쿼리
let postsRef = ref.child("posts")
let queryRef = postsRef.queryOrdered(byChild: "description")
.queryStarting(atValue: "This")
.queryEnding(atValue: "z")
queryRef.observeSingleEvent(of: .value) { snapshot in
print(snapshot)
}
이 쿼리를 기반으로 예를 들어 구조를 제공하자, 4. 그 이유는 무엇입니까?
post_1 아스키 84
쿼리가 ASCII 값 84 (아스키 T)에서 시작하여 122 (아스키 z)로 끝나는 모든 노드를 반환 할 것이다 문자 대문자 T로 시작한다. 그래서 post 3은 ascii 97이고, post 4는 n, ascii 110입니다. 그래서 모든 것이 반환됩니다.
* 다음에 오는 경우 쿼리는 실제로 'This'로 시작하고 'z'로 끝나지만이 예제에서는 단순화됩니다.
한편으로는 약간 제한적으로 보일 수도 있지만 실제로는 꽤 강력합니다.
특정 문자열로 시작하는 일련의 값을 쿼리 할 때 사용합니다. 따라서 농산물 유통 회사를 소유하고 Apple, Banana, Peanut, Walnut과 같은 품목을 보유하고 있다고 가정합시다.당신이 당신의 과일의 모든 목록을 원한다면 당신이
items
item_0
description: fruit_apple
item_1
description: fruit_banana
item_2
description: nut_peanut
item_3
description: nut_walnut
같은 데이터베이스를 구성 할 수 있습니다, 당신은 너무
let queryRef = postsRef.queryOrdered(byChild: "description")
.queryStarting(atValue: "fruit_")
.queryEnding(atValue: "fruit_")
이라고 화합물 값처럼 조회 할 수 있습니다.
귀하의 경우에는 문자열 내에서 특수 문자 을 직접 검색 할 수 없지만 ASCII 코드 범위 내의 문자로 시작하는 문자 범위를 검색 할 수 있습니다.
"!"에서 시작하는 쿼리
이 33 !
34 \"
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47/
이 슈퍼 긴 대답은 정말 해결책이 아니다 그러나 당신이 조회 할 데이터를 얻을 수 있도록 어쩌면 당신의 중포 기지의 구조 조정에 도움이 될 것입니다 및에서 끝나는 "/"문자로 시작하는 모든 문자열을 반환 에.
[Firebase 데이터, 점 및 슬래시 추가하기] 가능한 복제본 (https://stackoverflow.com/questions/19132867/adding-firebase-data-dots-and-forward-slashes) – DoesData
@DoesData 해당 답변은 맞습니다. 중복이 아니며 관계없는 정보가 있습니다. OP는 하위 문자열 유형 검색을 묻습니다. – Jay