Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

392
Vistas
¿Por qué los documentos que obtengo de una colección no tienen el método collection()?

Estoy tratando de recorrer una colección de usuarios, que son documentos, en mi base de datos de Firestore. Los documentos de usuario que obtengo tienen subcolecciones dentro de ellos. Dentro de estas subcolecciones, quiero agregar un documento. Actualmente estoy en el punto de agregar el documento a la subcolección, pero me dicen que el método de recopilación no existe porque userDoc todavía está en una promesa que no tiene ningún sentido porque cuando imprimo la identificación del userDoc I obtenga la identificación del documento en firestore. Error:

No capturado (en promesa) TypeError: userDoc.collection no es una función

Mi código está abajo.

 async function preformSignaling() { let users = await negDoc.collection("users").get(); for (let userDoc of users.docs) { if (isNotAlreadyConnected(userDoc.id)) { let newPeerConnection = new UserConnection(servers, userDoc.id); if ( userDoc.id != sessionStorage.getItem("userID") && userDoc.id != "metadata" ) { let connOfferDescription = await newPeerConnection.userPeerConnection.createOffer(); await newPeerConnection.userPeerConnection.setLocalDescription( connOfferDescription ); await userDoc.collection("offer-candidates").doc("offer").set({ offer: newPeerConnection.userPeerConnection.localDescription, }); } peerConnections.push(newPeerConnection); } } } class UserConnection { constructor(servers, remoteUserID) { this.userPeerConnection = new RTCPeerConnection(servers); this.remoteStream = new MediaStream(); this.remoteUserID = remoteUserID; getRemoteUserID() { return this.remoteUserID; } }

Código en cuestión:

 await userDoc.collection("offer-candidates").doc("offer").set({ offer: newPeerConnection.userPeerConnection.localDescription, });
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

El problema no tiene nada que ver con las promesas; estás esperando lo que se supone que debes esperar. El problema es que userDoc es una instantánea de documento (es decir, el resultado de consultar la base de datos) y las instantáneas de documentos no tienen un método .collection . Básicamente, solo tienen un método .data() , y luego algunas propiedades de metadatos (por ejemplo, .id , .exists )

En su lugar, debe hacer lo siguiente:

 await negDoc .collection("users") .doc(userDoc.id) .collection("offer-candidates") .doc("offer") .set({ offer: newPeerConnection.userPeerConnection.localDescription, });
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda