Отображение информации о базе данных на основе поискового запроса [Firebase] [Swift] - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть база данных Firebase, в которой я пытаюсь отобразить 5 случайных пользователей (с их именем и адресом электронной почты), опрашивая их по возрасту, на 5 различных контроллерах представления, которые контролируются UIPageViewController.

Я создал код запроса для отображения пользователей по возрасту.Код ниже:

func findoutinfo(){
    let usersRef = Database.database().reference().child("Users")

    let query = usersRef.queryOrdered(byChild: "Age").queryEqual(toValue: "21")
    query.observeSingleEvent(of: .value, with: { snapshot in
        for child in snapshot.children {
            let childSnap = child as! DataSnapshot
            let dict = childSnap.value as! [String: Any]

            let name = dict["Name"] as! String
            let email = dict["email"] as! String

            print(childSnap.key, name, email)
        }
    })
}

Однако я не нашел способа случайного выбора 5 пользователей и отображения их информации на различных страницах.Обеспечение того, что все они разные.

1 Ответ

0 голосов
/ 25 февраля 2019

К сожалению.Firebase не предоставляет вам простого решения для выбора случайных детей.В зависимости от варианта использования может потребоваться использовать разные подходы.

Если список пользователей невелик, вы можете получить всех пользователей, поместить их в массив, а затем выбрать 5 из них случайным образом.Что-то вроде:

var selectedUsers = [[String: Any]]() 
let qtyOfUsersToSelect = 5
var users = getUsersArrayFromFirebase() // Made up function where you should fetch the Users.
for i in 1...5 {
    selectedUsers.append(users.remove(at: Int.random(0..<users.count)))
}

Если вы ожидаете, что пользователи базы данных будут большими, то я бы порекомендовал вам использовать функции Firebase и обрабатывать это на бэкэнде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...