2017-09-17 81 views
0

我试图动态设置Firebase参考。我从文档中知道的是firebase在初始状态下设置引用。只要我尝试使它动起来,它就会给我许可错误。Firebase - 根据用户输入动态设置Firebase参考

比如我想从输入得到的果实的名字,所以代码:

$('.fruit').click(function(){ 
    var name = $(this).text(); 
    getFuitName(name); 
}); 

function getFruitName(name){ 
    var fruit = firebase.database().ref('fruit/' + name); 
    fruit.once('value', function(snapshot) { 
     console.log(snapshot.val().name); 
    }); 
} 

我该怎么办?任何特殊的方法来做到这一点?

+0

包括你的火力数据库截图。另外尝试先控制snapshot.val()。 –

+0

调用** getFruitName(name)**而不是** getFuitName(name)**,查看丢失的** r ** –

回答

-2

我找到了解决方案。我必须像这样分开数据库引用:

var database = firebase.database(); // I add this line 

$('.fruit').click(function(){ 
    var name = $(this).text(); 
    getFuitName(name); 
}); 

function getFruitName(name){ 
    var fruit = database.ref('fruit/' + name); //and then modified this line 
    fruit.once('value', function(snapshot) { 
     console.log(snapshot.val().name); 
    }); 
} 
+0

这甚至不会更改您的代码。显然还有另一个问题。但是,如果它现在有效,那就太棒 – creativecreatorormaybenot

+2

这没有任何意义 –

0

这与您是否动态地执行操作无关。只是您的参考所在的特定位置的Firebase数据库规则未正确设置。

规则始终适用于引用指向的位置,而不是子级安全规则,因为引用将始终作用于完整节点数据,其中包括所有子级。

您可以在以下页面找到如何正确设置您的Firebase实时数据库规则

https://firebase.google.com/docs/database/security/ https://firebase.google.com/docs/reference/security/database/