2016-09-12 3 views
0

Ich habe eine Struktur Firebase Daten, die wie folgt aussieht: alle Daten zu indizieren die message und direction verschachtelte Kind TastenFirebase - Indexierungsdaten Zwei Ebenen tief

-messages 
    -myFirstUsername 
     -5-2-16 04:02:23 AM 
      -message: 'messageOne', 
      -direction: 'outgoing' 
     -5-3-16 04:07:23 AM 
      -message: 'messageTwo', 
      -direction: 'outgoing' 
    -mySecondUsername 
     -5-4-16 04:02:23 AM 
      -message: 'messageOne', 
      -direction: 'outgoing' 
     -5-5-16 04:02:23 AM 
      -message: 'messageTwo', 
      -direction: 'incoming' 

Ich möchte. Da die Benutzernamenschlüssel unter dem Objekt messages dynamisch sind, muss ich meinen Index für das Objekt messages selbst einrichten.

Wird die folgende Regel Indizes zwei Ebenen tief einrichten?

{ 
    "rules": { 
    "messages": { 
     ".indexOn": ["message", "direction"] 
    } 
    } 
} 
+0

See Mathew Antwort wie man Indizes zu/messages/$ userId/$ messageId hinzufügt. Aber ich bin mir nicht sicher, ob es deinen Anwendungsfall lösen wird. Wie wollen Sie die Daten abfragen? –

Antwort

3

Sie können dynamische .indexOn wie folgt angeben:

{ 
    "rules" : { 
     "messages" : { 
      "$userId": { 
       ".indexOn" : ["message", "direction"] 
      } 
     } 
    } 
} 

Ich kann nicht scheinen, um es in die neuen Dokumente zu finden, aber hier ist die alte Beschreibung docs: https://www.firebase.com/docs/security/api/rule/path.html

+0

Auf der neuen Website ist die Dokumentation für ".indexOn" [hier] (https://firebase.google.com/docs/database/security/#section-defining-indexes). – cartant

+0

Richtig, aber überraschenderweise spricht es nicht über $ location, obwohl es auf etwas darüber anspielt, wenn die $ uid. –

+1

Sie sind heute ein Firebase-Anrufbeantworter –

Verwandte Themen