Firebase:获取用户数据对象并在不刷新页面的情况下带回用户配置文件?

Firebase: Get userdata obj and bring back the user profile without page refresh?

我已经尝试了 2 天,但如果我想从数据库中获取用户配置文件,我需要刷新页面。有什么方法可以做到 无需 页面刷新?我需要使用某种 jquery ajax 来实现吗?可能吗?

这是我的方法 2,它们可以正常工作,但需要刷新页面才能恢复我的用户配置文件。

 function authDataCallback(authData) {
  if (authData) {
    var fb = new Firebase('https://blistering-torch-8000.firebaseio.com/users/public/');
    fb.child(authData.uid).on('value', function(data) {
      var myData = data.val();
      var dateString = myData.date.split(' ').slice(0, 4).join(' ');
      $('.profile').append('<li>Username: ' + myData.username + '</li>');
      $('.profile').append('<li>Joined: ' + dateString + '</li>');
    });
    var fb = new Firebase('https://blistering-torch-8000.firebaseio.com/users/private/');
    fb.child(authData.uid).on('value', function(data) {
      var myData = data.val();
      $('.profile').append('<li>Email: ' + myData.email + '</li>');
    });
  } else {
    console.log('Profile: No data, no one is logged in');
  }
}
fb.onAuth(authDataCallback);

var fb = new Firebase('https://blistering-torch-8000.firebaseio.com/');
var getAuth = fb.getAuth(); 
function getProfile(authData) {
  if (authData) {
    var fb = new Firebase('https://blistering-torch-8000.firebaseio.com/users/public/');
    fb.child(authData.uid).on('value', function(data) {
      var myData = data.val();
      var dateString = myData.date.split(' ').slice(0, 4).join(' ');
      $('.profile').append('<li>Username: ' + myData.username + '</li>');
      $('.profile').append('<li>Joined: ' + dateString + '</li>');
    });
    var fb = new Firebase('https://blistering-torch-8000.firebaseio.com/users/private/');
    fb.child(authData.uid).on('value', function(data) {
      var myData = data.val();
      $('.profile').append('<li>Email: ' + myData.email + '</li>');
    });
  } else {
    console.log('Profile: No data, no one is logged in');
  }
}
getProfile(getAuth);

数据库规则:

{
  "rules": 
  {
    "users": 
    {
      "public": 
      { 
        // allow me to list users by name
        ".read": true ,
        ".write": true
      }, 
      "private": 
      {
        "$uid": 
        {
          // only readable by owner
          ".read": "auth.uid === $uid",
          ".write": true
        }
      }
    }   
  }
}

onAuthgetAuth return null 都未通过身份验证。修复您的 login/function 调用顺序。