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

141
Vistas
¿Cómo obtener todos los documentos con una identificación única de la base de datos de firestore usando React?

[Firestore SS][1] [1]: https://i.stack.imgur.com/EI1Dm.png

Quiero obtener cada documento como se muestra en SS, está almacenado como Pets + unique_userId. No puedo obtener todos los datos juntos. Solo puedo obtener un dato de un usuario en particular usando el código a continuación.

 const [info,setInfo]=useState([]); useEffect(() => { db.collection("pets ESYXOPqlJpZ48np8LfNivnh9pvc2").onSnapshot((snapshot) => setInfo(snapshot.docs.map((doc) => doc.data())) ); },[]);

Aquí ESYXOPqlJpZ48np8LfNivnh9pvc2 este es el ID de usuario de cada usuario único

Por favor, ayúdenme a obtener todos los datos de Mascotas en lugar de codificar y obtener un dato en particular.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Pruebe el siguiente código,

 const [docs, setDocs] = useState([]); useEffect(() => { const querySnapshot = await getDocs(collection(db,"pets ESYXOPqlJpZ48np8LfNivnh9pvc2")); const document =[]; querySnapshot.forEach((doc) => { document.push({ ...doc.data(), id: doc.id }); }); setdocs(document); }, []);
about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Supongo que la identificación adjunta es una referencia a la identificación del propietario? En este caso, ¿sería una opción obtener la lista de propietarios y usar la identificación de todos para crear una lista de identificaciones de colección y luego obtener todos sus datos?

Si no, solo veo opciones:

  1. Reconsidere la estructura de su base de datos: tal vez use una colección unificada de pets y tenga una referencia con/a esa id en los documentos de mascotas.
  2. Cree una función en la nube en la que use @google-cloud/firestore para obtener la lista de colecciones. Hay toneladas de recursos disponibles para ayudarlo a comenzar con las funciones de la nube de Firebase. Su documentación también es bastante buena, y probablemente la más actualizada.
 const functions = require('firebase-functions') const { Firestore } = require('@google-cloud/firestore'); module.exports = functions .region('europe-west3') // use the region you want here .https.onRequest(async (request, response) => { try { const firestore = new Firestore(); const collections = (await firestore.listCollections()).map(collection => collection.id) response.json({ data: collections }) } catch (error) { response.status(500).send(error.message) } })

Obtendrá un punto final que puede usar para obtener los ID de colección (por ejemplo: https://your-project-name.cloudfunctions.net/collections )

 const [pets, setPets] = useState([]); const [collectionIds, setCollectionIds] = useState([]) useEffect(() => { fetch('https://your-project-name.cloudfunctions.net/collections') .then(response => response.json()) .then(({ data }) => setCollectionIds(data)) }, []) useEffect(() => { collectionIds.forEach((collectionId) => { // There are better ways to do this, // I'm just using your approach so you can focus on the rest of the code db.collection(collectionId).onSnapshot((snapshot) => { setPets((currentPets) => [...currentPets, ...snapshot.docs.map((doc) => doc.data())]) }) }) }, [collectionIds])

Tenga en cuenta que estas son implementaciones de muy alto nivel, no hay manejo de errores, ni desmontajes ni nada, así que téngalo en cuenta. ¡Espero que ayude, buena suerte!

about 4 years ago · Juan Pablo Isaza 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