Как я могу хранить данные под UID в FireStore с помощью Angularfire2 - PullRequest
0 голосов
/ 10 апреля 2019

Я могу хранить свои данные пользователя под uid, но как я могу хранить данные своей коллекции под uid? и как мне получить этот идентификатор в этой строке this.userDoc = db.doc<Stock>(`user/${this.userId}`);

StockService.ts

import { Injectable } from '@angular/core';
import {
  AngularFirestore,
  AngularFirestoreCollection,
  AngularFirestoreDocument
} from '@angular/fire/firestore';

import { map } from 'rxjs/operators';
import { Stock } from '../models/stock.model';
import { AngularFireAuth } from '@angular/fire/auth';
import { switchMap} from 'rxjs/operators';
import { Observable, of } from 'rxjs';
import { AuthenticationService } from './authentication.service';


@Injectable({
  providedIn: 'root'
})
export class StockService {

  smallstocks: Observable<Stock[]>;
  stcoksDoc: AngularFirestoreDocument<Stock>;
  private stocksCollection: AngularFirestoreCollection<Stock>;

  userId: string;


  userDoc: AngularFirestoreDocument<Stock>;
  user: Observable<{}>;


  constructor(public db: AngularFirestore,
              public afAuth: AngularFireAuth,

             ) {

              this.user = this.afAuth.authState.pipe(
                switchMap(user => {
               if (user) {
                 return this.db.doc<Stock>(`users/${user.uid}`).valueChanges();
               } else {
                 return of(null);
               }
              }));

                  this.userDoc = db.doc<Stock>(`user/${this.userId}`); // how can i get uid here...
                  this.stocksCollection = this.userDoc.collection<Stock>('smallstocks');

    }


    getStocks() {
      return this.stocksCollection.snapshotChanges().pipe(
        map(actions =>
          actions.map(a => {
            const data = a.payload.doc.data() as Stock;
            const id = a.payload.doc.id;
            return { id, ...data };
          })
        )
      );
    }

  addStock(stock: Stock) {
    this.stocksCollection.add(stock);
  }

}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...