我正在尝试实施安全规则来检索与当前用户ID匹配的文档。根据{{3}}我应该对where
子句的查询有一个限制性规则,这就是我所做的。
我希望安全规则更具限制性,似乎无法弄清楚以下规则不匹配的原因。
"angularfire2": "5.0.0-rc.6,
"firebase" : "4.10.1",
"@firebase/firestore": "0.3.4",
消息:"权限丢失或不足
以下是我的安全规则(工作和非工作评论) 安全规则
match /passwords/{password} {
function isSignedIn() {
return request.auth != null;
}
function userMatches() {
return resource.data.user_id == request.auth.id;
}
allow write: if isSignedIn();
allow read: if isSignedIn(); // works
allow read: if userMatches(); //doesn't work
}
客户端代码
getPasswords(): Observable<IPasswordItem[]> {
const whereClause = ref => ref.where('user_id', '==', this.authService.getCurrentUserId());
return this.afs.collection<IPasswordItem>('passwords', whereClause).valueChanges();
}