我正在尝试使用angularjs框架从我的离子应用程序中读取firebase中的值。我有下面的现有getPlayer函数,可以返回为特定用户存储的对象。我能够读取该对象中的键值对。
// Data Service
.factory('dataService', ['$firebase', 'config', function ($firebase, config) {
// Get Firebase reference
var dataRef = new Firebase(config.firebaseUrl);
// Get the Firebase object
return $firebase(dataRef);
}]);
这是getPlayer函数,它可以很好地返回一个对象。
var users = dataService.$child('users');
var getPlayer = function(playerId) {
return users.$child(playerId);
};
我正在尝试实施firebase安全规则,因此我不希望用户使用上述功能获取用户的所有信息。我编写了firebase规则,以便获取特定密钥' fullname'在用户下的玩家对象中。我在firebase模拟器中测试了授权规则来查询/ users / {playerid} / fullname,它运行正常。
以下是安全规则
中的相关firebase数据库结构{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
"friends": {".read": "auth != null"},
"fullname": {".read": "auth != null"}
}
}
}
}
然后我尝试下面的函数,它只返回{" $ id:" fullname"}
var getPlayerFullname = function(playerId) {
console.log(users.$child(playerId).$child('fullname'));
return users.$child(playerId).$child('fullname');
};
当我检查控制台登录chrome时,我看到以下内容显示我在&$ 39; $ value'中找到的值。键。