使用JavaScript

时间:2017-02-05 13:32:14

标签: javascript firebase firebase-realtime-database

我的Firebase数据库存在问题。我有以下结构:

{
  "adminroles":{

       "admin1": "some_uuid"
    }
}

在我的file.js中,我使用以下代码:

return firebase.database()
         .ref('adminrole/')
         .once('value')
         .then(function(snapshot) {
           var adminuser = snapshot.child('admin1').val();
         });

但是,快照未定义。

有人可以帮帮我吗?我的数据库结构有问题吗?

1 个答案:

答案 0 :(得分:0)

我通过将错误回调传递给promise的Then()来找到问题。事实上,问题出在我的数据库规则中。

我有:

    "adminrole":{
         "admin1":{
            ".read": "auth != null &&  auth.uid == 'some_uid'",
            ".write": "auth != null &&  auth.uid == 'some_uid'"
             }
       }

所以once()返回了一个错误,因为我没有对#34; adminrole"的读取权限。我按如下方式更改规则,现在可以正常工作。

    "adminrole":{
       ".read": "auth != null",
       ".write": "auth != null &&  auth.uid == 'some_uid'"
      }

功能如下:

return firebase.database()
     .ref('adminrole')
     .once('value')
     .then(function(snapshot) {
       var adminuser = snapshot.child('admin1').val();
     }, function(error) {
        var errorMessage = error.message;
        alert(errorMessage);
        console.log(error);
     });