我正在开发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工作正常。 在数据库部分, 一次('值')功能不再响应。 没有成功也没有失败。 没有任何错误信息并且总是沉默
实时数据库规则
{
"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"
}
}
}
}
答案 0 :(得分:1)
之前我遇到过同样的问题,这与您的位置有关。 请尝试使用VPN。
答案 1 :(得分:0)
因此,根据评论和您的数据库结构:
首先,我不明白以下规则是什么?
"threads": {
"$tid": {
"messages": {
".indexOn": ["read", "date"]
}
}
}
其次,您可以尝试使用基本规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
第三,你确定你被放入了吗?如果你做了什么
var uid = info.uid;
console.log(uid);
PS:请注意,您正在使用的方法显然将被弃用,请参阅 https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithEmailAndPassword
编辑:这是有效的,我已经复制了你的案子。请注意return
和data.val()
。
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);
});