我在使用Firebase規則時遇到問題。基本上,我已經叫根文件夾「用戶」,包含再次含有數據的許多usersIDs,恰恰是這樣的:運行下面的代碼時Firebase安全規則不起作用
users {
userid1 {
info_user {
a: {
a1: whatever
a2: whatever
a3: {
a3.1: whatever
a3.2: whatever
a3.3: whatever
a3.n: whatever
}
}
n: {} ...
}
},
userid2 {}, ...n
}
一切都正常工作,如果沒有安全規則,如:
{rules {".read" : true, ".write" : true}}
function getUserInfo() {
var dbRef = firebase.database();
var myArray = [];
dbRef.ref('users').on('child_added', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
myArray = (childSnapshot.val().a3);
// do something
});
});
}
我的挑戰是更改安全規則而不更改數據庫結構。
所以,我試圖做這樣的事情:
{
"rules" : {
".read" : false,
".write" : false,
"users": {
"$userid": {
"info_user": {
"a":{
".read": "auth != null",
".write": "(root.child('r').child('w').hasChild(auth.uid))",
"a1":{".validate": "newData.isString()"},
"a2":{".validate": "newData.isString()"},
"a3":{".validate": "newData.isString()"}
},
"n": {
".read": "auth != null",
".write": "$user_id === auth.uid"
}
}
}
}
}
}
預期的結果是讀取節點A3當用戶進行身份驗證。
如何做到這一點?