【发布时间】:2018-09-01 10:39:16
【问题描述】:
我正在尝试为当前记录在 firebase 实时数据库中的存储中的图像提取 URL。
这是一个抢手游戏 - 屏幕上会有两张牌(左图和右图),当两张牌匹配时,用户将点击抢购。
我所有的图片网址都以以下方式存储:
每个人都有一个独特的孩子,称为“索引” - 我还有另一棵树,它只是每个图像记录的运行计数。所以目前我正在运行一个函数来检查当前计数的总数,然后执行一个随机函数来生成一个随机数,然后使用 orderByChild 和一个包含随机索引号的 equalTo 对图像树执行数据库查询。
如果我记录这个数据快照,我可以看到一个记录的完整节点(所以索引、分数、url、用户及其值)但是如果我尝试只提取 URL,我会返回一个 Null 值。我可以,相当烦人地,看似在闲暇时返回术语“URL”,但我无法获得潜在的价值。我想知道这是否是因为它是一个字符串而不是数字,但我找不到任何表明这是一个问题的东西。
请记住,我最多只学习了大约一周的 Javascript,所以如果我犯了明显的新手错误,这可能就是原因!
下面是一个代码 sn-p 来告诉你我的意思:
var indRef = firebase.database().ref('index')
var imgRef = firebase.database().ref('images')
var leftImg = document.getElementById('leftImg')
var rightImg = document.getElementById('rightImg')
document.addEventListener('DOMContentLoaded', function(){
indRef.once('value')
.then(function(snapShot){
var indMax = snapShot.val()
return indMax;
})
.then(function(indMax){
var leftInd = Math.floor(Math.random()* indMax + 1)
imgRef.orderByChild('index').equalTo(leftInd).once('value', function(imageSnap){
var image = imageSnap.child('url').val();
leftImg.src=image;
})
})
})
【问题讨论】:
标签: javascript firebase firebase-realtime-database