Javascript 无法访问我的web应用中的firebase实时数据库
我正在开发firebase webapp,面临一个问题。 我无法访问(读/写)firebase实时数据库Javascript 无法访问我的web应用中的firebase实时数据库,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在开发firebase webapp,面临一个问题。 我无法访问(读/写)firebase实时数据库 <script src="https://www.gstatic.com/firebasejs/4.12.0/firebase.js"></script> <script> var config = { apiKey: "AIzaSyCPYu_iqHjNoXjMfdMVLoYs5Graf2gdz7I", authDomain: "shar
<script src="https://www.gstatic.com/firebasejs/4.12.0/firebase.js"></script>
<script>
var config = {
apiKey: "AIzaSyCPYu_iqHjNoXjMfdMVLoYs5Graf2gdz7I",
authDomain: "sharing-is-caring-967c8.firebaseapp.com",
databaseURL: "https://sharing-is-caring-967c8.firebaseio.com",
projectId: "sharing-is-caring-967c8",
storageBucket: "sharing-is-caring-967c8.appspot.com",
messagingSenderId: "884406512169"
};
firebase.initializeApp(config);
firebase.auth().signInWithEmailAndPassword("myemail@gmail.com", "Qqqq123").then(function(info) {
var uid = info.uid;
firebase.database().ref('users/' + uid + '/userDetails').once('value').then(function(data) {
alert(data)
}).catch(function(error) {
alert(error.message);
});
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
alert(errorMessage);
// ...
});
</script>
数据库结构
{
"users" : {
"BzucCBivhiRUogK5GeNrMV6k6M83" : {
"userDetails" : {
"displayName" : "Stanislav Sergeev",
"email" : "stanislav.atos@yahoo.com",
"notifications" : true,
"phoneNumber" : "",
"profile_image" : "",
"pushToken" : "ec7iJ7Mt7Lg:APA91bFb8NK2XeaLVUgr-DEPRFuLMDCk9_tIr_eHBjmuZPnHDUvFuCsj3kez4F5-Y9CjVXOY6VlsFi5nlazSZys4KBjwCKcpINbV5S2ZEaH09aWZ6sLga8dOja-UIp3Iz3DSOAb4bcH4"
}
}
}
}
因此,根据评论和您的数据库结构: 首先,我不明白下面这条规则是为了什么
"threads": {
"$tid": {
"messages": {
".indexOn": ["read", "date"]
}
}
}
第二,你能尝试一下基本规则吗:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
第三,你确定你在流血吗?如果你这样做,你会得到什么
var uid = info.uid;
console.log(uid);
请注意,您使用的方法显然将被弃用,请参阅
编辑:这是工作,我复制了你的情况。注意
返回
和数据.val()
我以前也有过同样的问题,这与你的位置有关。
请尝试使用VPN。您的索引规则中似乎有一个输入错误:$tid而不是$uidJust sec,我将附上。您以前遇到过这个问题吗?@Stanislas Sergeev注意到,您可以通过单击Firebase数据库控制台中的“导出”按钮轻松获得数据库的文本导出(JSON),但内容太多了data@StanislasSergeev您可以删除大部分数据并保留一组“有意义的完整”显示structure@StanislavSergeev如果使用一组简单的规则进行查询,会发生什么?不会发生。我把规则改为简单,但它不起作用。重要的是,我也有iOS应用程序,即使web应用程序不起作用,它也能起作用work@StanislavSergeev请再试一次。它非常适合我,数据结构与您相同,并且具有简单的规则(即“.read”:“auth!=null”,“.write”:“auth!=null”)。请注意,在我的代码中,输出是在浏览器控制台中完成的,而不是通过警报。它与firebase成员资格有关。免费版本有时在某些地方不起作用。我不知道确切的位置,但确实如此。
var uid = info.uid;
console.log(uid);
firebase.auth().signInWithEmailAndPassword("azerty@nmw.com", "****")
.then(function (info) {
var uid = info.uid;
console.log(uid);
return firebase.database().ref('users/' + uid + '/userDetails').once('value');
})
.then(function (data) {
console.log(data.val());
})
.catch(function (error) {
alert(error.message);
});