我有一个结构有点像的数据库
- game
- 1000
- clues: ...
- grid: ...
- gid: 1000
- createTime: ...
- pid: 2780
- 1001
- clues: ...
- ...
我想检索pid为2780的所有游戏。我在.indexOn
上为game
设置了pid
规则。在节点中,我目前正在做:
db.ref('game').orderByChild('pid').equalTo(this.pid).once('value').then(
gameSnap => {
console.log(gameSnap.hasChildren()); // false
console.log(gameSnap.val()); // null
gameSnap.forEach(
childSnap => {
console.log(childSnap); // no printout
this.setState(prevState => {
games: [...prevState.games, [childSnap.key, gameSnap.child("createTime").val()]]
});
});
}
);
但是gameSnap
始终为空。相反,当我使用python Pyrebase
客户端通过REST API对数据库执行相同的查询时,会得到不同的结果:
In [257]: len(db.child('game').order_by_child('pid').equal_to(2780).get().each())
Out[257]: 25
我可能做错了什么?
答案 0 :(得分:0)
事实证明this.pid
是"2780"
,不是2780
。因此,添加parseInt
解决了我的问题。