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

288
Vistas
Cómo devolver datos de una consulta de Firestore a una FlatList

Soy nuevo en React-Native y estoy tratando de devolver la matriz de datos de la primera consulta a la pantalla del dispositivo donde puedo configurar Dispositivos. Tenía esto funcionando usando .get() y .then(), pero no estaba obteniendo los eventos actualizados, así que me mudé a onSnapshot y parece que tengo datos al final de la consulta, pero no puedo configurar esto en la pantalla.

 import React, { useEffect, useRef, useState } from "react"; import { Alert,FlatList,RefreshControl,StatusBar,Text,View } from "react-native"; import { TouchableOpacity } from "react-native-gesture-handler"; import styles from "./styles"; import { getDevices } from "../../services/devices"; import { useNavigation } from "@react-navigation/native"; import { Feather } from "@expo/vector-icons"; import CircularProgress from "react-native-circular-progress-indicator"; import { removeDevice } from "../../redux/actions"; import { useDispatch } from "react-redux"; import firebase from "firebase/app"; import "firebase/firestore"; const wait = (timeout) => { return new Promise((resolve) => setTimeout(resolve, timeout)); }; export default function DevicesScreen() { const [devices, setDevices] = useState([]); const [loading, setLoading] = useState(false); const componentMounted = useRef(true); const navigation = useNavigation(); useEffect(() => { getDevices().then(setDevices) },[]); console.log() TypeError: undefined is not an object (evaluating '(0, _devices.getDevices)().then') This error is located at: in DevicesScreen (created by SceneView)

Aparece este error. Si elimino .then (setDevices) puedo ver la matriz de datos en el archivo console.log

 import firebase from "firebase/app"; import "firebase/firestore"; export const getDevices = () => { firebase .firestore() .collection("device") .where("user_id", "==", "Rweeff9MO8XIDheZLx0HVbfaezy2") .get() .then((querySnapshot) => { querySnapshot.docs.map(doc => { let data =doc.data(); console.log(data); return { id, ...doc }; } )} ) }

Gracias

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

0

Hay varios problemas en su código.

  1. No devuelves la cadena de Promesas .
  2. id no está definida. Necesitas hacer doc.id

Así que lo siguiente debería hacer el truco:

 export const getDevices = () => { return admin // <========= See the return here .firestore() .collection("projects") .get() .then((querySnapshot) => { return querySnapshot.docs.map(doc => ({ id: doc.id, ...doc.data() })); // ^^^ See the return here }); }
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