jeudi 21 novembre 2019

Reference.set failed: First argument contains undefined in property 'users.undefined.profileImageUrl'

I am a newbie to firebase and Javascript and I have tried many methods get the user data store by the userid but all i'm getting is the data is being stored under "undefined". enter image description here enter image description here


var displayName;
var userInfo;
var profile_url;

$("#login-btn").click(function(){
userInfo = firebase.auth().currentUser;
if (userInfo) {
firebase.auth().signOut();
} else {
var email = document.getElementById('login_email').value;
var password = document.getElementById('login_pw').value;

   firebase.auth().signInWithEmailAndPassword(email, password).then(function(){
     document.getElementById('login_bar').style.display = "none";
     document.getElementById('logout_bar').style.display = "inline-block"; 
     document.getElementById('userinfo_bar').style.display = "inline-block"; 
     document.getElementById('secession_bar').style.display = "inline-block";
     alert("login success");
     location.replace('board.html');
   }).catch(function(error) {

     var errorCode = error.code;
     var errorMessage = error.message;

     if (errorCode === 'auth/wrong-password') {
       alert('wrong-password.');
     }

     else {
       alert(errorMessage);
     }
     console.log(errorMessage);

   }); 


 } 

});

$("#join-btn").click(function(){
var email = document.getElementById('join_email').value;
var password = document.getElementById('join_pw').value;
var displayName = document.getElementById('join_name').value;
var job = $('input[name=job]:checked').val();

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) {<br>

  var u_Ref = firebase.database().ref('users/' + user.uid);

  userInfo = user;

  u_Ref.set({
    'email' : email,
    'job': job,
    'profileImageUrl':profile_url,
    'uid' : user.uid,
    'username': displayName
  });


    handleFileSelect(); 
    alert("join success");

}, function(error) {<br>

var errorCode = error.code;
var errorMessage = error.message;
alert(error);
});

 if (email.length < 4) {
   alert('x');
   return;
 }
 if (password.length < 4) {
   alert('x');
   return;
 }

function initApp() {
  firebase.auth().onAuthStateChanged(function(user) {
    if (user) { 
      var displayName = user.displayName;
      var email = user.email;
      var emailVerified = user.emailVerified;
      var photoURL = user.photoURL;
      var isAnonymous = user.isAnonymous;
      var uid = user.uid;
      var providerData = user.providerData;

      user.updateProfile ({
        displayName : displayName,

      }). then (function () {
        console.log ( 'success');
      }). catch (function (error) {
        console.log( 'no');
      });

      userInfo = user;

      firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION); 
      document.getElementById('login_bar').style.display = "none";
      document.getElementById('logout_bar').style.display = "inline-block"; 
      document.getElementById('userinfo_bar').style.display = "inline-block";
      document.getElementById('secession_bar').style.display = "inline-block";


      $("#secession_bar").click(function(){
        user.delete().then(function(){ 
          alert('success');
         userRef= firebase.database().ref('users/' + user.uid);
         userRef.remove(); 
         firebase.storage().ref().child('userImages/' + userInfo.uid).delete(); 
        location.reload();
        });
      });

      $("#logout_bar").click(function(){
        firebase.auth().signOut();
        location.reload();
      });



    } else { 

      document.getElementById('login_bar').style.display = "inline-block"; 
      document.getElementById('logout_bar').style.display = "none"; 
      document.getElementById('userinfo_bar').style.display = "none";
      document.getElementById('secession_bar').style.display = "none";



    } 

  });
} 

function handleFileSelect(evt) {
  evt.stopPropagation();
  evt.preventDefault();
  var file = evt.target.files[0];

  var metadata = {
    'contentType': file.type
  };


  var storageRef = firebase.storage().ref().child('userImages/' +userInfo.uid);

  storageRef.put(file, metadata).then(function(snapshot) {
    console.log('Uploaded', snapshot.totalBytes, 'bytes.');
    console.log('File metadata:', snapshot.metadata);

    snapshot.ref.getDownloadURL().then(function(url) {
      console.log('File available at', url);
      profile_url = url;

    });
  }).catch(function(error) {

    console.error('Upload failed:', error);

  });

} 



Aucun commentaire:

Enregistrer un commentaire