Consultar usuários por nome ou endereço de email usando o Firebase (Swift)
Eu sou muito novo emFirebase eRápido e estou tendo alguns problemas quando se trata de consultar. Então, existem basicamente duas coisas que eu gostaria de fazer:
Consultar meus usuários eencontre apenas aqueles que contêm uma determinada String no nome (ou endereço de email) e adicione-os a uma matriz.Pegue todos os meus usuários e adicione-os a uma matriz.A parte relevante dos meus dados para esta pergunta é assim:
Como você pode ver, estou usando o log simples do Firebase (depois gostaria de adicionar o login do Facebook) e estou armazenando meus usuários pelo uid deles.
Uma parte do meu arquivo de regras fica assim:
"registered_users": {
".read": true,
".write": true,
".indexOn": ["name"]
}
Portanto, todo mundo deveria ter acesso de leitura e gravação a essa parte dos meus dados.
Também li a parte "Recuperando dados" do Guia do Firebase para iOS no site deles e, de acordo com esse guia, meu código para obter todos os nomes de usuários e endereços de email deve funcionar, pelo menos acho que sim. Mas isso não acontece. Aqui está o meu código:
func getUsersFromFirebase() {
let registeredUserRef = firebaseRef.childByAppendingPath("registered_users")
registeredUserRef.queryOrderedByChild("name").observeSingleEventOfType(.Value, withBlock: { snapshot in
if let email = snapshot.value["email"] as? String {
println("\(snapshot.key) has Email: \(email)")
}
if let name = snapshot.value["name"] as? String {
println("\(snapshot.key) has Name: \(name)")
}
})
}
Percebi que, no guia da base de firmas, eles sempre usavam o tipo ChildAdded e não Value, mas para mim o Value faz mais sentido. A saída com Value não é nada e a saída com ChildAdded é apenas um usuário, a saber, o que está conectado no momento.
Então, minhas perguntas são:
Posso fazer essa consulta com a minha estrutura de dados atual ou preciso me livrar da criação de histórias dos usuários pelo seu uid?Se sim, como eu precisaria alterar meu código para fazê-lo funcionar?Se não, qual seria a melhor maneira de armazenar meus usuários e possibilitar a consulta deles por nome?Como posso consultar, por exemplo "agrupar" e obter apenas o logon simples do usuário: 1 (Max Mustermann)?Espero que minha descrição seja suficientemente detalhada. Thx antecipadamente por sua ajuda.
Suplemento:
O estranho é que, segundo o guia "Recuperando dados", é possível consultar e classificar os seguintes dados por altura.
Dados:
Consultando código:
E não é exatamente o mesmo que pretendo fazer?