2017-10-18 3 views
0

Ich versuche, die uid zu erhalten, die Firebase für meine neue Datensätze/Dokumente erzeugen, die man hier zu sehen:AngularFire2 - Get Node-UID von Firebase generiert?

enter image description here

Ich versuche, ein Dokument zu erhalten, aber da ich nicht über seine Ich kann es nicht erreichen. Dieser Code wird die Datensätze uids nicht zurückkehren, gibt es nur die Datensätze selbst:

return this.afDB.collection('games'); 

Auch kann ich nicht die ID verwende ich generieren es abzufragen, und wenn ich eine Sammlung verwenden können, um es abzufragen Ich kann den Datensatz nicht aktualisieren oder löschen.

Also, das funktioniert nicht:

this.afDB.doc('games/' + game.id).delete(); 

Gibt es eine Möglichkeit, dass die UID zu bekommen ich suche?

Antwort

0

ich es schon gelöst, das ist mein Service-Code:

import { Injectable } from '@angular/core'; 
import {AngularFirestore, AngularFirestoreCollection} from 'angularfire2/firestore'; 
import {Observable} from 'rxjs/Observable'; 

@Injectable() 
export class GamesFirebaseService { 
    private itemsCollection: AngularFirestoreCollection<any>; 
    items: Observable<any[]>; 
    countItems = 0; 
    constructor(public afs: AngularFirestore) { 
     this.itemsCollection = this.afs.collection<any>('games'); 
     this.items = this.itemsCollection.snapshotChanges() 
      .map(actions => { 
       this.countItems = actions.length; 
       return actions.map(action => ({ $key: action.payload.doc.id, ...action.payload.doc.data() })); 
      }); 
    } 
    public store = (game) => { 
     return this.itemsCollection.add(game); 
    } 
    public update(game) { 
     return this.itemsCollection.doc(game.$key).update(game); 
    } 
} 

Im Grunde hatte ich auf jedem Objekt auf ein Attribut kartieren action.payload.doc.id, $ key in diesem Fall. Dann benutze es, wenn ich versuche, auf dieses Objekt zuzugreifen.

Verwandte Themen