중포 기지 데이터가이 같은 작은 선물을 구조 만 사용자의 콘텐츠를 읽기 허용 - 로그인 한 사용자가 작업을 만들면 사용자의 uid (예 : simplelogin : 2)가 생성중인 작업의 사용자 부분에 배치됩니다. 사용자가 로그인 할 때중포 기지 보안 규칙은
, 그들은을 사용하여 그들의 작업을 볼 수 있습니다
$firebase(ref.orderByChild('user').equalTo(User.uid));
다음 단계는 내가 사투를 벌인거야 어디있는 데이터를 보호하는 것입니다. 나는 시도했다 : 또한
"tasks": {
".indexOn": ["user", "order"],
".write": "auth != null",
".read": "auth != null && data.child('user').val() == auth.uid",
"$task": {
"title": {
".validate": "newData.isString() && newData.val().length <= 1000"
},
"completed": {
},
"time_added": {
".validate": "newData.val() <= now"
},
"order": {
},
"user": {
".validate": "newData.val() != null && newData.val() == auth.uid"
},
"$other": {
".validate": false
}
}
}
과 :
"tasks": {
"$task": {
".indexOn": ["user", "order"],
".write": "auth != null",
".read": "auth != null && data.child('user').val() == auth.uid",
"title": {
".validate": "newData.isString() && newData.val().length <= 1000"
},
"completed": {
},
"time_added": {
".validate": "newData.val() <= now"
},
"order": {
},
"user": {
".validate": "newData.val() != null && newData.val() == auth.uid"
},
"$other": {
".validate": false
}
}
}
그러나 내가 얻을 :
Error: permission_denied: Client doesn't have permission to access the desired data.
어디서 잘못된 것입니까?
:
또한의 예를 참조하십시오. 여기에는 쿼리 사용이 포함됩니다. 본질적으로 쿼리는 일치하는 하위 항목을 얻기 위해 작업을 읽어야하기 때문에 부모 (즉, 반복) 수준에서 읽기 액세스가 허용되지 않으므로 실패합니다. – Kato안녕하세요 @ 카토 - '사용자'입력란에 사용자 (1 명 이상) 만 모든 작업에 액세스 할 수 있어야하는 상황에서 어떤 것이 좋습니다. 아니면 데이터를 잘못 구성하고 있습니까? – mcnamee
[구조 데이터] (https://www.firebase.com/docs/web/guide/structuring-data.html) 가이드를 확인하십시오. 인덱스를 다루는 비례 데이터 작성이라는 제목의 섹션이 있습니다. 여기에 몇 가지 변종이 필요할 것입니다. – Kato