所以我有一个"架构"看起来像这样:
- orders
- <$uid>
- orderid
- orderid
- transactions
- <$uid>
- transactionid
我尝试过几种方法来访问orders/$uid/orderid
,但看起来如果密钥本身为空,则永远不会创建.once
或.on
的结果,甚至最初。
这是有问题的,因为在向购物车添加商品时,我需要查看用户是否已经有购物车/我需要检查它是否为空。
我已将默认值(0
)添加为默认值,现在访问ref.child('cart/' + user.uid).once()
确实会返回null
。
权衡似乎是我需要&#34;种子&#34;具有默认值的新数据库,否则不会触发任何事件。
我错过了什么或者这是一种常见模式吗?如果没有,有什么更好的方法来处理基本上不存在且不触发事件的空键?
答案 0 :(得分:1)
您需要执行以下操作:
ref.child("orders").orderByChild("orderid").equalTo(orderid).once("value",snapshot => {
var datas=snapshot.val();
if(datas){
console.log("it exists");
}
else{
console.log("doesn't exist");
}
});
这是唯一的方法,上面将检查once()
或on()
检索的快照是否存在。