2017-10-18 3 views
0

Ich versuche, Untersammlungen in AngularFire2 mit FireStore ohne Erfolg abzufragen. Habe gesucht aber keine passende Lösung gefunden.Wie Abfragen von Untersammlungen in AngularFire2/FireStore?

ngOnInit() { 
// this does work 
this.africaCollection = this.afs.collection('Country', ref => ref 
.where('code', '==', 'za')); 
this.countriesAfrica = this.africaCollection.valueChanges(); 

// this does not work 
this.townCollection = this.afs.collection('Country').doc('za')       
.collection('Towns'); 
this.towns = this.townCollection.valueChanges(); 
{ 

Mein HTML sieht wie folgt aus:

<div> 
    <table> 
    <tr *ngFor="let town of towns | async"> 
     <td>{{ town.name }}</td> 
    </tr> 
    </table> 
</div> 

Ich bin ein Neuling an diesem.

+0

Können Sie Stackblitz.com verwenden, um das Problem neu zu erstellen? Ich könnte viel mehr mit einem Beispiel helfen (ich bin der Autor von AngularFire) –

+0

Hallo David - habe Schwierigkeiten mit Stackblitz, aber ich habe meinen Versuch auf GitHub https://github.com/JacquesSchalkwyk/Firestore-Qry platziert. Ich hoffe, das wird helfen. Derzeit hat meine Datenbank die Standardregel, in der jeder lesen und schreiben kann. Die Struktur ist Country-Towns-Auflistungen –

+0

Wenn ich die Regeln festlegen: -service cloud.firestore { Übereinstimmung/Datenbanken/{Datenbank}/Dokumente { Übereinstimmung/Land/{Land} { erlauben lesen, schreiben; } } } –

Antwort

1

Es kann sich auf Ihre Regeln beziehen.

Standardregeln

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /{document=**} { 
     allow read, write; 
    } 
    } 
} 

Mehr Details über Regeln hier:

https://firebase.google.com/docs/firestore/security/secure-data#rules_dont_cascade

sicher, dass Sie Make Elemente in dieser Sammlung

Sie können auch Elemente hinzufügen Ihre Sammlung nach Code, um sicher zu sein es ist richtig gelegen. Sie können dann Ihre Firebase-Konsole anzeigen, um festzustellen, wo sie platziert wurde.

var town: Town = { 
    name: "town name", 
    region: "region name" 
}; 
this.afs.collection('Country').doc('za').collection('Towns').add(town); 
+0

, wenn ich festgelegt, die Regeln zu Service cloud.firestore { Spiel/Datenbanken/{Datenbank}/Dokumente { Spiel/Land/{Land}/Städte/{Gemeinden} { erlauben lesen, schreiben; } } } meine erste qry läuft, aber die zweite schlägt mit Berechtigungen Fehler –

+0

Ich habe die Regeln Beispiel aktualisiert. Erhalten Sie immer noch einen Berechtigungsfehler mit dieser Version? wenn nicht, irgendein anderer Fehler? – Remi

+0

Danke. Wird versuchen und Ergebnisse veröffentlichen. –

Verwandte Themen