如何在firebase中使用uid获取用户信息?

时间:2017-12-06 02:50:36

标签: javascript firebase firebase-realtime-database

我想做什么

用户向管理员发送消息的系统。

的进展

  • 得到uid(成功)
  • 获取用户信息(失败)

如果用户留言,管理员希望看到他们的列表。

在数据库中,

messages {
    uid1 {
        key1 {
            name : "user name"
            text : "text that user remained"            
            created_at : "time that message created"
        }
        key2 {
            …
        }
        …
    }

    uid2 {
        …
    }
}

我存储上述信息。现在能够在管理页面上以列表的形式查看此信息..(并且管理员单击列表以查看消息。)

但是,我已成功加载每个uid,但我不知道如何使用`uid'来获取用户的信息。

这是输出(现在):

<div>uid1</div>
<div>uid2</div>

以下是代码:

function getListItem() {
  var messagesRef = database.ref('personalchats') //personalchats 에 있는 uid로 접근
  messagesRef.on('child_added', setListItem);
  messagesRef.on('child_changed', setListItem);

}

function setListItem(data) {
  var key = data.key;

  var html = '<div class="listitem"> ' + key + '</div>;

   $(".collection").append(html);
}

我希望这个结果是:

<div>userName1 : current message</div>
<div>userName2 : current message</div>
...

我能为此做些什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用data()转换数据,然后使用数据库中给出的值名称提取数据。

   function getListItem() {
      var messagesRef = database.ref('personalchats') //personalchats 
      messagesRef.on('child_added', setListItem);
      messagesRef.on('child_changed', setListItem);
    }

   function setListItem(data) {
      var key = data.key;
      // create a variable to store the data
      var dataVal=data.val();
      var msgtext=dataVal.text;

      var html = '<div class="listitem"> ' + key + ': '+ msgtext</div>;
       $(".collection").append(html);
    }