
Quiero leer los datos de la base de datos en tiempo real de firebase y el resultado es un error: el usuario es nulo y otro error, es otro método para hacer esto, no puedo leer el archivo en la base de datos en tiempo real de firebase
auth.onAuthStateChanged((firebaseUser) => { if (firebaseUser) { console.log('login-form.js | logged') const logged = true; showHomepage(); const auth2 = firebase.auth() const user = auth2.currentUser; var email = user.email console.log(email) var namee = email namee = namee.replace('.','') namee = namee.replace('$','') namee = namee.replace('#','') namee = namee.replace('/','') namee = namee.replace('[','') namee = namee.replace(']','') console.log(namee) var ref = db.ref("/Utenti/" + namee + '/'); ref.on("value", function(data, prevChildKey) { const user = data.val(); console.log(user.soldi) document.getElementById('money').innerHTML = user.soldi + '€' }, function (error) { console.log("Error: " + error.code); }); } });En su caso, puede obtener datos de usuario (correo electrónico, uid, ...) de la variable firebaseUser , sin llamar a firebase.auth().currentUser
firebase.auth().onAuthStateChanged((firebaseUser) => { if (firebaseUser) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/firebase.User var email = firebaseUser.email; var namee = email; // ... } else { // User is signed out // ... } }); Además, su captura de pantalla y su código, parece que el problema es que su función de autenticación no devuelve datos de usuario, no que no pueda obtener datos de usuario de firebase. Puede usar una función contenedora para envolver fuera de su firebase.auth().onStateChanged() , con una función de devolución de llamada, para obtener y devolver datos de usuario de firebase:
export const firebaseWrapper = (callback) => { firebase.auth().onAuthStateChanged((firebaseUser) => { if (firebaseUser) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/firebase.User var email = firebaseUser.email; var namee = email; // ... callback(firebaseUser); } else { // User is signed out // ... callback(null); } }); } Esta función de callback() puede ser una función de despacho, o un setState() o equivalente, según lo que necesite.