2016-11-29 4 views
0

Я использую Firebase для своего приложения и пытаюсь запросить содержимое моей базы данных. Я пользуюсь следующим запросом:Firebase и запрос на термин в Swift

DataService.dataService.BASE_REF.child("Posts"). 
    child(selectedComment.commentKey).child("comments"). 
    queryOrderedByChild("userComment").queryEqualToValue(comment). 
    observeSingleEventOfType(.Value, withBlock: { (snapshot) in 

Для примера. если я ищу термин «бозе», тогда появляется только бозе, но «Бозе», «БОСЭ» & «Бозе XYZ» не появится. Как я могу обратиться к таким запросам, что все вышеперечисленное появляется, когда я запрашиваю «bose»

ответ

1

Поскольку вы используете queryEqualToValue, вы получите результаты, в которых userComment соответствует точно указанному вами значению.

Если вы хотите получить результаты, где userComments начинается со значением, вы должны использовать комбинацию queryStartingAtValue и queryEndingAtValue:

DataService.dataService.BASE_REF.child("Posts"). 
    child(selectedComment.commentKey).child("comments"). 
    queryOrderedByChild("userComment") 
    .queryStartingAtValue(comment). queryEndingAtValue(comment+"\uF8FF") 
    observeSingleEventOfType(.Value, withBlock: { (snapshot) in 

Это дает вам ряд результатов, от начиная с comment тем, начиная с comment с последующим по последнему символу Юникода.

Но это все равно не соответствует результатам в верхнем и нижнем регистре. Если вы этого хотите, вам нужно будет сохранить данные в едином случае, чтобы включить поиск. База данных Firebase больше ориентирована на синхронизацию данных в реальном времени, чем на полноту ее (текстовых) возможностей поиска.

Также см:

+0

Спасибо. Я получаю - Не могу вызвать queryStartingAtValue: после того, как queryStartingAtValue или queryEqualToValue ранее назывался '- когда я пытаюсь это сделать. – NetCod

+0

Я предполагаю, что вы имели в виду queryStartingAtValue (комментарий) .queryEndingAtValue (комментарий + "\ u {F8FF}"). Это работает. Благодарю. – NetCod

+0

Yup, это была копия-вставка-забыл-модифицировать. Спасибо, что поймали. –

Смежные вопросы