use*_*607 5 javascript jquery firebase
我正在使用firebase的foreach从这个url中将每个孩子都放在一棵树上
目标,当页面加载从firebase抓取一个随机项并显示它
数据结构
grabbit (table name)
active (for active items for sale)
category (the category of the item ie womensClothes, MensShoes etc)
unique id of the item
Run Code Online (Sandbox Code Playgroud)
在页面加载进入http://gamerholic.firebase.com/grabbit/active 并获取任何一个类别并返回它..
脚本
var grabbitRef = new Firebase('https://gamerholic.firebaseIO.com/grabbit/active/');
grabbitRef.on('value', function(snapshot) {
if(snapshot.val() === null) {
alert("invalid");
} else {
// get snap shot data:
snapshot.forEach(function(snapshot) {
var name = snapshot.name();
alert(name);
});
}
});
Run Code Online (Sandbox Code Playgroud)
在我有一个随机类别说"电子产品"后,我得到一个新的快照并让它返回电子产品中的任何随机项目
var grabbitRef = new Firebase('https://gamerholic.firebaseIO.com/grabbit/active/'+name);
grabbitRef.on('value', function(snapshot) {
if(snapshot.val() === null) {
alert("invalid");
} else {
// get snap shot data:
snapshot.forEach(function(snapshot) {
var id = snapshot.name();
alert(id);
});
}
});
Run Code Online (Sandbox Code Playgroud)
有了id,我现在可以获得该项目的详细信息
var grabbitRef = new Firebase('https://gamerholic.firebaseIO.com/grabbit/active/'+name+'/'+id);
Run Code Online (Sandbox Code Playgroud)
不幸的是,不可能从Firebase的列表中获取随机项.您可以使用limit(1)来获取第一个项目,或者使用endAt().limit(1)来获取最后一个项目.
如果您正在使用forEach,您还可以使用Math.random随机获取所有项目,然后随机选择一项.例如:
var i = 0;
var rand = Math.floor(Math.random() * snapshot.numChildren());
snapshot.forEach(function(snapshot) {
if (i == rand) {
// picked random item, snapshot.val().
}
i++;
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5151 次 |
最近记录: |