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

230
Vistas
¿Por qué OnValue de firebase no se dispara aquí?

Seguí todas las instalaciones de la expo con respecto a firebase, para web y android. Cuando ejecuto la aplicación en la web, obtengo los datos bien, sin embargo, cuando la ejecuto en Android, el método onValue no se ejecuta.

Tampoco da errores.

 import { StyleSheet, Text, View, FlatList, TouchableOpacity } from 'react-native'; import {useEffect, useState } from 'react' import { getDatabase, onValue, ref } from 'firebase/database'; import { fb } from '../firebaseConfig' import { LogBox } from 'react-native'; const db = getDatabase(); LogBox.ignoreLogs(['Setting a timer']); const HomePage = ({navigation})=>{ const [count, setCount] = useState([]); useEffect(() => { const cart = ref(db,"cart/"); onValue(cart,(snapshot)=>{ const data = snapshot.val(); console.log(data) setCount(data) }) },[]); const sendData = (name, surname) =>{ navigation.navigate('Map', { name: name, surname: surname} ) } return( <View> <FlatList data = {Object.keys(count)} renderItem={({item})=> <TouchableOpacity onPress={() => {sendData(count[item].name, count[item].Surname)}}> <Text>{count[item].name}</Text> </TouchableOpacity>} keyExtractor={(item, index) => index.toString()} /> </View> ) } export default HomePage

esta es mi app.json

 "expo": { "name": "my-app", "slug": "my-app", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "ios": { "supportsTablet": true }, "android": { "package": "com.mypackage.myapp", "googleServicesFile": "./google-services.json", "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#FFFFFF" } }, "web": { "favicon": "./assets/favicon.png" } } }

¿Me estoy perdiendo de algo?

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

0

Dado que no está pasando una devolución de llamada de error como tercer argumento a onValue() , puede parecer que la función no se activa cuando realmente se ejecutó, pero luego falló y se canceló.

La falla puede deberse a un error de permiso, por lo tanto, asegúrese de agregar una función cancelCallback .

De los documentos :

Una devolución de llamada opcional que será notificada si su suscripción al evento se cancela alguna vez porque su cliente no tiene permiso para leer estos datos (o tenía permiso pero ahora lo perdió). A esta devolución de llamada se le pasará un objeto de error que indica por qué ocurrió la falla.

 export declare function onValue( query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown // <--- error handler ): Unsubscribe;
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