Слушатель 'on' использует функцию обратного вызова всякий раз, когда изменяются данные, которые установлены для слушателя, в этом и заключается ваша ошибка, поскольку вы не предоставили обратный вызов. Вы можете легко выполнить sh любые манипуляции с данными внутри этого обратного вызова без необходимости связывать кучу «.then». Вот пример установки состояния после изменения данных.
import React, { useEffect, useState } from 'react';
import database from '@react-native-firebase/database';
function User({ userId }) {
const [user, setUser] = useState(null);
useEffect(() => {
const subscriber = database();
subscriber.ref(`/users/${userId}`).on('value', snapshot => {
setUser(snapshot.val());
//or call another function that will do the rest of the async tasks/data manipulation
});
// Stop listening for updates when no longer required
return () => subscriber();
}, [userId]);
// return whatever here
}
Дополнительные варианты использования здесь: https://rnfirebase.io/database/usage