2015-10-19 13 views
18

Ho dati impostati in questo modo:Come scrivere .indexOn per le chiavi dinamiche in firebase?

Tasks:{ 
    Group 1:{ 
    pushid1:{ 
     date: 18921949021, 
     title: "Do something" 
    }, 
    pushid2:{ 
     date: 18921949021, 
     title: "Do something else" 
    } 
    }, 
    Group 2:{ 
    pushid3:{ 
     date: 18921949021, 
     title: "Do another thing" 
    } 
    } 
} 

ho farvi riferimento in base alla data in modo da ottenere solo le attività realizzate dopo un certo tempo.

var now = Date.now(); 
var taskRef = new Firebase(FB + "/tasks/" + thisGroup); 
taskRef.orderByChild('date').startAt(now).on("child_added", function(snap){ 
    console.log(snap.val()); 
}); 
Questo

tutto funziona benissimo, per ogni gruppo ricevo un messaggio di avviso che dice qualcosa di simile:

FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "date" at tasks/Group 1 to your security rules for better performance 

Come si aggiunge che, per le mie regole di sicurezza? Non riesco ad aggiungerne uno per ogni gruppo creato da un utente, esiste un carattere jolly di qualche tipo?

+0

Ciao Marty. Hai mai risolto questo? O ha deciso di cambiare la struttura? Grazie – jovanjovanovic

+0

@jovanjovanovic La risposta di Frank ha funzionato per me. –

risposta

34

immagino che stai cercando:

{ 
    ".read": true, 
    ".write": true, 
    "rules": { 
    "Tasks": { 
     "$groupid": { 
     ".indexOn": "date" 
     } 
    } 
    } 
} 

La documentazione Firebase è di solito una buona lettura. Trascorrendo un'ora o meno nel security guide, garantirai una migliore comprensione di questo e di molti altri argomenti.

+1

Sto ancora ottenendo "AVVISO DI INCENDIO: Utilizzo di un indice non specificato. Considera l'aggiunta di" .indexOn ":" clinics/1/date "alle/richieste alle tue regole di sicurezza per prestazioni migliori" – Steve

+1

Ho ottenuto il problema simile con due livelli su provider di autenticazione (ad es. google, twitter) e l'ID (es. email). Entrambi non posso hardcoded, quale opzione devo indicizzare con gli elementi foglia, quando due livelli di genitore non possiamo hardcoded. Apprezzo qualsiasi aiuto – user1687711

+0

@ marty-h Il '$ groupid' era il carattere jolly che il richiedente stava chiedendo. – KarolDepka

Problemi correlati