我正在调查可能不存在的数据的查询。在这种情况下,不会运行回调。据我从文档中了解,它应该运行,snapshot.val()应该为null,不是吗?
这里有一个精简的例子:http://surfmaps.eu/trombone/case.html
回调中有一个未执行的console.log。
我在这里错过了什么吗?
再见,谢谢,Luís
代码:
function getData(id) {
var ref=firebase.database().ref("support/"+id);
console.log("In getData, looking for ",ref);
// get support data from firebase
ref.on('value',function (snapshot) {
console.log("In Value");
console.log(snapshot);
});
console.log("end getData, looking for ",ref);
}
// on startup
getData("abc");
答案 0 :(得分:10)
您无权阅读数据。要查看此内容,您可以附加完成侦听器并记录它为您提供的错误:
filter_cond = False
for asset in assets:
filter_cond = or_(filter_cond, and_(model.version == asset.get("version"),
model.id == asset.get("id"),
model.account_id == account_id))
query = session.query(model).filter(filter_cond)
result_set = query.all()
这样做表明:
错误:/ support / abc中的permission_denied:客户端无权访问所需数据。
答案 1 :(得分:1)
请参见Firebase Rules,您无权访问Firebase数据库集合。
转到Firebase控制台,数据库,规则进行更新:
{
"support{
".read": true, // allow read
".write": false
}
}
答案 2 :(得分:0)
使用
function(error) {
console.error(error);
查找错误。应该是因为
错误:/ react中的权限被拒绝:客户端没有权限 访问所需的数据。
通过转到实时数据库->规则->将读取和写入从false更改为true来更改。