TransWikia.com

Consulta de coleções firebase

Stack Overflow em Português Asked by Lima on September 26, 2021

tenho um projeto angular e estou usando o firebase como um banco de dados, porem estou com dificuldades para acessar uma coleção que está dentro de uma outra coleção. O meu projeto no firebase está assim:

colection(usuarios) == documentos(1″ 1 é o token pois so tem um user cadastrado la”) e dentro desse usuário com o token 1 eu tenho outra colection com o nome de (publicacoes) que dentro dela contem as publicações desse usuário. Como eu consigo acessa essa Colection pelo meu cod.

cod

meu servico que eu estou usando para testar:

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


@Injectable()

export class TestService {
  constructor(private firestore: AngularFirestore) { }

  criar_novo_user(record) {
    return this.firestore.collection('usuarios').add(record);
  }
  carregar_todos_usuarios() {
    return this.firestore.collection('usuarios/').snapshotChanges();
  }
}


meu componente onde estou usando esse serviço:

import { Component, OnInit } from '@angular/core';
import { FeedService } from './feed.service';
import { Publicacao } from './publi/publi.model';
import { TestService } from '../test.service';


@Component({
  selector: 'app-feed',
  templateUrl: './feed.component.html',
  styleUrls: ['./feed.component.css']
})
export class FeedComponent implements OnInit {

  teste

  constructor(private testeService: TestService) { }

  ngOnInit(){

      this.testeService.carregar_todos_usuarios().subscribe(data => {
        this.teste = data.map(object => {
        return{
          token: object.payload.doc.id,
          id: object.payload.doc.data()['id'],
          user: object.payload.doc.data()['user'],
          nome: object.payload.doc.data()['nome'],
          imagePerfil: object.payload.doc.data()['imagePerfil'],
          seguidores: object.payload.doc.data()['seguidores'],
          seguindo: object.payload.doc.data()['seguindo'],
          bios: object.payload.doc.data()['bios'],
          totalPublicacoes: object.payload.doc.data()['totalPublicacoes']
        };})
        console.log(this.teste);
        })
  }

}

One Answer

Você tem que fazer um for ao receber os usuários, assim:

firebase.firestore().collection('usuarios').get().then((docData) => {
  docData.docs.map((e, i, a) => {
    const collectionPublicacoes = firebase.collection('usuarios').doc(e.id);
collectionPublicacoes.get().then((res) => {
 res.docs.map((el, in, ar) => {
  console.log(el.data());
});
});
});
});

Answered by Saulo Souza on September 26, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP