无法使用jquery从Firebase更新页面上的数据

时间:2014-11-25 06:39:58

标签: javascript jquery firebase

  //Display User in header
  usersRef.child(uid).on('value', function(name){
    var dName = (name.val().displayName);
    $("#userName").replaceWith("<li id=userName><span>Logged in as " + dName + "</span></li>");
    //Get the first Letter of the users name
    firstLetter = dName.charAt(0);
    //Display icon in header
      console.log("User Image Replaced");
      $("#userImage").replaceWith("<li id='userImage'>" + firstLetter + "</li>");
  });

上面的代码在我的网站标题中成功创建了一个用户图标。这是他们名字的第一个字母,背景是“用户颜色”的颜色。当他们的“用户颜色”发生变化时,我希望标题中的图标更新。

我的搜索结果比较混乱,但通常会在第一次更改颜色时更新,我必须在页面周围单击才能再次执行此操作。但并非总是如此,有时它不会第一次起作用,有时它会在前三次起作用。

我是否以导致此问题的方式对其进行编码,还是Firebase内容?

1 个答案:

答案 0 :(得分:0)

您需要为firebase参考URL添加child_changed事件。

以下是示例:

usersRef.on("child_changed", function(snapshot) {    
      document.getElementById("username").innerHTML = udata.name;
      document.getElementById("username").style.backgroundColor=udata.color;
});

示例小提琴:http://jsfiddle.net/learningloop/ha5wncmx/19/