Я просмотрел все статьи, сообщения о переполнении стека и даже документацию Firebase, но до сих пор не могу найти способ запросить пользователя с помощью ввода UITextField.
Моя база данных настроена так:
Posts -|
* Not needed for question *
Users -|
412bjgaigb-2b41jb4-12j4bj214b -|
Profile-Url: "https://link-to-image.com"
Username: "RandomUser"
3nj2b5io32-b4jk12b412-4124jke -|
Profile-Url: "https://link-to-image.com"
Username: "NewPerson"
h8abgbbuag-n1nj21b1uj-jb41jb5 -|
Profile-Url: "https://link-to-image.com"
Username: "RedDawn"
В моих правилах базы данных Firebase он установлен как:
"rules": {
".read": true,
".write": true,
"Users": {
"$userid": {
".indexOn": ["Username"]
}
}
}
В Swift мой код:
var strSearch = textfield.text!
ref.child("Users").queryOrdered(byChild: "Username").queryStarting(atValue: strSearch).queryEnding(atValue: "\(strSearch)\\uf8ff").observeSingleEvent(of: .value) { (snapshot) in
print(snapshot.value)
}
Приведенный выше код запускается каждый раз при изменении текстового поля, но он возвращает каждого пользователя в узле «Пользователи». База данных большая, и я не хочу, чтобы мое приложение получало всех пользователей в базе данных.
Я хочу получить только тех пользователей, имя которых начинается с того, что находится в текстовом поле.
Пример:
Пользователь вводит "R" внутри текстового поля.
Функция должна выводить только RandomUser и RedDawn.