2016-07-18 147 views
8

Ho un database come questo (foto allegata): Il viaggio ha BIDS e awardedBid. Io uso awardedBid!=null come un modo per determinare il viaggio è ancora disponibile per l'offerta. Tuttavia, non so come eseguire una query per tale condizione, quindi devo incidere con la creazione di un altro campo bidDone modo da poter utilizzare .equalTo, come questoFirebase, query con "un figlio esiste" come condizione?

mRootReference.child(CHILD_TRIPS).child(mTripKey).orderByChild(BID_DONE).equalTo(true) 

Tuttavia ritengo che sia pericoloso quando devo usare 2 le chiavi per denotare solo una cosa dal momento che è soggetta a bug (l'ho creata io stesso nello screenshot allegato dove bidDone = false dove dovrebbe essere true).

Esiste un modo più pulito per questo compito: eseguire una query con condizione che esista una stringa?

enter image description here

Grazie

risposta

14

È possibile rimuovere l'attributo bidDone e utilizzando startAt() per ottenere tutte le bambino che awardedBid non nullo:

ref.orderByChild("awardedBid").startAt("") 

o questo per ottenere solo il bambino senza offerta

ref.orderByChild("awardedBid").endAt(null) 
+0

h a proposito del contrario ('awardBid == null'), in modo che io possa passare tra le due condizioni, grazie –

+1

@DevidFrinelli grazie –