Tengo algunos problemas con las funciones Async.
Esto no es lo mismo que: Esta pregunta
Haré todo lo posible para explicar. Así que trato de recuperar datos de una base de datos de Firebase.
Puedo subir datos a la base de datos sin ningún problema. Puedo recuperarlos también.
"Entonces, ¿dónde está tu problema?" - probablemente tú detrás de tu pantalla
Mi problema es mostrar los datos que recupero de la base de datos. Aquí hay algo de código:
const [messages,setMessages] = useState<Message[]>([]); useIonViewWillEnter(() => { const msgs = getMessagesFromDB().then((data)=>{ setMessages(data); }); setBusy(false) });Y en otro archivo:
export const getMessagesFromDB = async () : Promise<Message[]> => { const ref = await firebase.default.database().ref('message'); try{ ref.on('value', (snapshot) => { const data = snapshot.val(); const current : Message = data['-Mv4-nZYSk9PoE_cwkWw'][0]; setMessages(current); return current; }); }catch (e) { throw e; } return getMessages(); }; Aquí está mi problema, si hago un console.log (datos), veo mis datos de la base de datos.
Pero uso mensajes en mi página y no aparece nada:
{busy ? <IonSpinner/> : messages.map(m => <MessageListItem key={m.id} message={m} />)}¿Sabes cómo puedo esperar los datos?