这是我的Firebase数据库的结构。
最近,如图所示,我将Firebase中每个坦克内的名称从lev
更改为level
。现在ref.on
无法使用数据库。我在console.log("passed");
内添加了ref
,即使没有打印出来。调用了函数setvalues
,但函数内部的ref不起作用。这是什么问题?
<head>
<script src="https://www.gstatic.com/firebasejs/4.8.1/firebase.js"></script>
</head>
<body >
<script type="text/javascript">
var firebaseConfig = {
apiKey: "xx",
authDomain: "xxx.firebaseapp.com",
databaseURL: "https://xxx.firebaseio.com",
projectId: "xxx",
storageBucket: "xxx.appspot.com",
messagingSenderId: "xxxx",
appId: "xxx:xxx:web:xxx",
measurementId: "xxx"
};
firebase.initializeApp(firebaseConfig);
var ref1 = firebase.database().ref('tank01/');
var tank1;
function setvalues(callback){
ref1.on("value", function(snapshot) {
console.log("Passed");
tank1 = snapshot.val()['level'];
callback();
});
}
setvalues(function(data){
console.log("set");
});
</script>
答案 0 :(得分:0)
我认为您的实时数据库规则仅限于授权用户执行读取和写入操作。再次检查数据库规则。如果您遇到同样的问题,请将规则更改为公共访问权限。
应该是这样
{
"rules": {
".read": true,
".write": true
}
}
希望这对您有所帮助:)
答案 1 :(得分:0)
检查一下,我做了些改动。
这将起作用,因为我改为公开使用,以便所有应用都可以与实时数据库进行交互。
{
"rules": {
".read": true,
".write":true,
"users": {
".read": true,
"$uid": {
".write": "auth.uid === $uid"
}
}
}
}