0
我有一個處理Angular和Firebase的準系統聊天應用程序,但在安全規則方面遇到問題。Firebase安全規則適用於模擬器,但不適用於Angular代碼
我已經創建了以下規則作爲測試,並且它在模擬器中工作,但不適用於我從Angular傳遞Firebase的對象。
{
"rules": {
"chat": {
".read": true,
".write":"newData.child('text').val() === 'test'"
}
}
}
我的角碼看起來如下。 $ rootScope.userDing只是一個在auth時保存用戶信息的對象。
var app = angular.module("fpl-chat", ["firebase"]);
app.controller("SampleCtrl", function($rootScope, $scope, $firebaseArray) {
var ref = new Firebase("https://glaring-torch-9680.firebaseIO.com/chat");
$scope.messages = $firebaseArray(ref);
$scope.addMessage = function() {
if ($rootScope.userDing) {
$scope.toAdd = {
text: $scope.newMessageText,
timestamp: Date.now(),
user: $rootScope.userDing.name,
imgSrc: $rootScope.userDing.imgSrc,
uid: $rootScope.userDing.uid
}
} else {
$scope.user = 'Guest';
$scope.imgSrc = 'assets/img/guest.png';
$scope.uid = 'guestUID';
}
$scope.messages.$add($scope.toAdd);
$scope.newMessageText = '';
};
});
如果$scope.newMessageText
是'test'
那麼它仍然不允許寫操作。
我得到的錯誤是:
FIREBASE WARNING: set at /chat/-K-YU0reCudVPu_8t74s failed: permission_denied
我要去哪裏錯了或者有沒有人有任何調試技巧?
我已經嘗試了一些其他的規則和東西,但它似乎並沒有任何工作。 –
安全規則和身份驗證是完全不同的主題。你能發佈你的整個規則集嗎? –
檢查更改後的代碼:) –