Reputation: 11
I want read firebase realtimedatabse data and result is an error: user is null and other error, it's another method to do this, i cannot read file in firebase realtime database
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);
});
}
});
Upvotes: 1
Views: 136
Reputation: 293
In your case, you can get user data (email, uid, ...) from firebaseUser
variable, without calling 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
// ...
}
});
Also, your screenshot and your code, it seems like the issue is that your auth function don't return user data, not that it cannot get user data from firebase. You can use a wrapper function to wrap outside your firebase.auth().onStateChanged()
call, with a callback function, to get and return firebase user data:
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);
}
});
}
This callback()
function can be a dispatch function, or a setState()
or equivalent, depending on what you need.
Upvotes: 1