Sono abbastanza nuovo per Firebase e Swift e sto avendo qualche problema quando si tratta di interrogare. Quindi ci sono fondamentalmente due cose che vorrei fare:Interrogare gli utenti per nome o indirizzo e-mail utilizzando Firebase (Swift)
- query miei utenti e trovano solo quelli che contengono una certa stringa nel loro nome (o l'indirizzo e-mail) e aggiungerli a un array.
- Ottieni tutti i miei utenti e aggiungili a un array.
La parte rilevante dei miei dati per questa domanda si presenta così:
Come potete vedere, sto usando il simplelogin di Firebase (poi vorrei anche aggiungere Facebook login) e Sto memorizzando i miei utenti con il loro uid.
Una parte del mio file di regole si presenta così:
"registered_users": {
".read": true,
".write": true,
".indexOn": ["name"]
}
Quindi tutti dovrebbero avere in lettura e scrittura a questa parte dei miei dati.
Ho letto anche la parte "Retrieving Data" della Firebase iOS Guide sul loro sito web e secondo questa guida, il mio codice su come ottenere tutti i nomi degli utenti e gli indirizzi e-mail dovrebbe funzionare, almeno credo. Ma non è così. Ecco il mio codice:
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)")
}
})
}
ho notato, che nella guida Firebase, hanno sempre utilizzato il tipo ChildAdded e non valore, ma per me valore ha più senso. L'output con Valore non è nulla e l'output con ChildAdded è solo un utente, ovvero quello che ha effettuato l'accesso in questo momento.
Quindi le mie domande sono:
- Posso fare questa domanda con la mia struttura dati corrente o devo per sbarazzarsi di storying gli utenti dal loro uid?
- Se sì, come dovrei cambiare il mio codice, per farlo funzionare?
- Se no, quale sarebbe il modo migliore per memorizzare i miei utenti e fare interrogazioni per nome possibile?
- Come posso richiedere ad es. "raccogliere" e ottenere solo l'utente simplelogin: 1 (Max Mustermann)?
Spero che la mia descrizione sia sufficientemente dettagliata. Grazie in anticipo per il tuo aiuto.
Supplemento:
La cosa strana è che la guida "Recupero di dati", dice, che l'interrogazione e l'ordinamento i seguenti dati per l'altezza è possibile.
dati:
codice Interrogare:
E non è che esattamente lo stesso che ho intenzione di fare?
Come possiamo salvare i dati come sono stati memorizzati? –