Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!