Я думаю, вам будет легче увидеть, будут ли выбраны какие-либо совпадения из базы данных для определенного имени пользователя.
let reference = Database.database().reference()
reference.child("users").queryOrdered(byChild: "username").queryEqual(toValue: "yourNewUserName").observeSingleEvent(of: .value) { (snapshot) in
// if there is data in the snapshot reject the registration else allow it
}
В противном случае вы загружаете слишком много данных клиенту. Если вы выросли на пользователях, загрузка также займет вечность.
from operator import itemgetter
MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=itemgetter(1)))
или без itemgetter
:
MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=lambda item: item[1]))
Я достиг того же самого с помощью этого кода, но предложение является большим.Спасибо!
templist = [ (line[1], line) for line in MY_TUPLE ]
templist.sort()
SORTED_MY_TUPLE = [ line[1] for line in templist ]
Часто существует встроенное, которое будет соответствовать Вашим потребностям, таким как str.lower (). Модуль оператора содержит много функций, полезных с этой целью. Например, можно отсортировать кортежи на основе их второго элемента с помощью operator.itemgetter ():
>>> import operator
>>> L = [('c', 2), ('d', 1), ('a', 4), ('b', 3)]
>>> map(operator.itemgetter(0), L)
['c', 'd', 'a', 'b']
>>> map(operator.itemgetter(1), L)
[2, 1, 4, 3]
>>> sorted(L, key=operator.itemgetter(1))
[('d', 1), ('c', 2), ('b', 3), ('a', 4)]
Надеюсь, это поможет.
sorted(my_tuple, key=lambda tup: tup[1])
Другими словами, при сравнении двух элементов кортежа Вы сортируете, вид на основе возвращаемого значения функции передал как основной параметр.