【发布时间】:2018-10-01 06:03:15
【问题描述】:
我正在开发 firebase webapp,但遇到了一个问题。 我无法访问(读/写)firebase 实时数据库。
<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>
SignInWithEmailAndPassword 工作正常。 在数据库部分, once('value') 函数不再响应。 没有成功,也没有失败。 没有任何错误消息并且始终保持沉默
实时数据库规则
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"threads": {
"$tid": {
"messages": {
".indexOn": ["read", "date"]
}
}
}
}
}
Fire base Web Setup Guide Screenshot of my Firebase
数据库结构
{
"users" : {
"BzucCBivhiRUogK5GeNrMV6k6M83" : {
"userDetails" : {
"displayName" : "Stanislav Sergeev",
"email" : "stanislav.atos@yahoo.com",
"notifications" : true,
"phoneNumber" : "",
"profile_image" : "",
"pushToken" : "ec7iJ7Mt7Lg:APA91bFb8NK2XeaLVUgr-DEPRFuLMDCk9_tIr_eHBjmuZPnHDUvFuCsj3kez4F5-Y9CjVXOY6VlsFi5nlazSZys4KBjwCKcpINbV5S2ZEaH09aWZ6sLga8dOja-UIp3Iz3DSOAb4bcH4"
}
}
}
}
【问题讨论】:
-
您的索引规则中似乎有一个错字:$tid 而不是 $uid
-
等一下,我会附上。你以前有没有遇到过这个问题?
-
@Stanislas Sergeev 请注意,您可以通过单击 Firebase 数据库控制台中的“导出”按钮轻松获取数据库的文本导出 (JSON)
-
但是数据太多
-
@Stanislas Sergeev 您可以删除大部分数据并保留一组显示结构的“有意义”节点
标签: javascript firebase firebase-realtime-database