Wie die Dokument-id in Firestore Sammlung im Winkel 5

Ich habe diese Funktion, erhält alle Beiträge und ich möchte, um die id der post irgendeine Idee, wie man die id des post-oder Wie man die id, wenn ich das Dokument hinzufügen, um die Sammlung

get_the_posts(){
    this.Post_collection = this.afs.collection('posts'); 
    return this.Posts = this.Post_collection.valueChanges();
}

Das gibt mir folgende Ausgabe:

[
   { name: 'post 1 name' description: 'post description'}, 
   { name: 'post 2 name' description: 'post description'},
   { name: 'post 3 name' description: 'post description'},
]

Und ich will diese Ausgabe

[
   { id: 'm9mggfJtClLCvqeQ', name: 'post 1 name' description: 'post description'}, 
   { id: 'm9mggfJtCldsadaf', name: 'post 2 name' description: 'post description'},
   { id: 'm9mggfJtCdsasavq', name: 'post 3 name' description: 'post description'},
]

1 Antworten

  • Jacky Tang
    4. Mai 2019

    Ich wurde so wütend, dass gibt es nicht eine Methode für diese, so dass ich eins gemacht mit allen zu teilen. Etwas dieses basic sollte erstellt werden, in der Bibliothek selbst.

    getCollectionWithIDs(collection,key,comparison,value) {
        return this.afs.collection<any>(collection, ref => 
            ref.where(
                key, comparison, value
            )).snapshotChanges().pipe(
                map(actions => actions.map(a => {
                const data = a.payload.doc.data();
                const id = a.payload.doc.id;
                return { id, ...data };
            })))
    }
    

    Beachten Sie, dass diese.afs ist vom Typ AngularFirestore sollte das im Konstruktor.