簡體   English   中英

Firebase:獲取userdata obj並帶回用戶配置文件,而無需刷新頁面?

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

我已經嘗試了2天,但是如果我想從數據庫中獲取用戶個人資料,則需要刷新頁面。 沒有頁面刷新有什么辦法嗎? 我需要使用某種形式的jajax實現嗎? 可能嗎?

這是我的兩種方法,它們正在工作,但是需要先刷新頁面,然后才能帶回我的用戶個人資料。

 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返回null 修正您的登錄/函數調用順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM