Firebase身份验证数据库

时间:2018-04-18 07:43:04

标签: javascript node.js firebase firebase-realtime-database

var firebase = require("firebase");

var config = {
    apiKey: "***",
    authDomain: "***",
    databaseURL: "***",
    projectId: "***",
    storageBucket: "***",
    messagingSenderId: "***"
};

firebase.initializeApp(config);

firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
    console.log(error.code);
    console.log(error.message);
});

firebase.database().ref('/Settings').once('value').then(function(snapshot) {
    console.log(snapshot.val().adminID);
});

我写了这段代码来从数据库中读取一些数据,但它给了我一个错误。它说我没有经过身份验证,我该如何解决?

2 个答案:

答案 0 :(得分:0)

打开firebase数据库并转到规则部分并在那里添加规则。

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

答案 1 :(得分:0)

不要忘记javascript是异步的,因此您将使用电子邮件和密码进行登录,但是您可能已经无法查询该查询。所以如果你有规则(可能会失败):

{
 "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
   }
}

试试这个:

firebase.auth().signInWithEmailAndPassword(email, password).then( (data) => 
  {    
    // here your query
  firebase.database().ref('/Settings').once('value').then(function(snapshot) 
  {
      console.log(snapshot.val().adminID);
   });
  });