我有一个firebase数据库,并且在他们的所有用户中都存储了他们的朋友(如果他们是朋友则值为true)。但如果其他人尚未接受好友请求,则该值为false。
我可以将所有这些用户放在一个列表中。但我想要实现的是,只显示值为'true'的用户和值为'false'的用户。
var ref = firebase.database().ref("friends").child(userUID);
ref.on('value', gotFriends);
function gotFriends(data) {
var usernames = data.val();
var names = Object.keys(usernames);
for (var i = 0; i < names.length; i++) {
var uname = names[i];
var ul = document.getElementById("friendsList");
var li = document.createElement('li');
li.appendChild(document.createTextNode(uname));
ul.appendChild(li);
}
}
提前谢谢!
答案 0 :(得分:0)
这样的事情应该有效:
function gotFriends(snapshot) {
snapshot.forEach(function(friend) {
var uname = friend.key;
if (friend.val() === true) {
var ul = document.getElementById("friendsList");
var li = document.createElement('li');
li.appendChild(document.createTextNode(uname));
ul.appendChild(li);
}
}
}
除了if
之外,此代码还使用Snapshot.forEach()
来循环结果。它不会改变行为,但会稍微快一点,也会更加惯用。