Firebase AngularFire2:错误:缺少权限或权限不足
不确定访问AngularFirestoreCollection时出现此错误的原因: 错误:缺少权限或权限不足Firebase AngularFire2:错误:缺少权限或权限不足,firebase,google-cloud-firestore,angularfire2,firebase-security,Firebase,Google Cloud Firestore,Angularfire2,Firebase Security,不确定访问AngularFirestoreCollection时出现此错误的原因: 错误:缺少权限或权限不足 我缺少什么?您已经在应用程序中配置了一个深度路径: Categories --> User --> Categories 并且您的规则仅包含父文件夹,即: /categories/{userId} 您必须更改为: /categories/{userId}/categories/{category} 因此,您可以访问匹配条件的UserId,以及当前路径的效果。 当使用通配
我缺少什么?您已经在应用程序中配置了一个深度路径:
Categories --> User --> Categories
并且您的规则仅包含父文件夹,即:
/categories/{userId}
您必须更改为:
/categories/{userId}/categories/{category}
因此,您可以访问匹配条件的UserId,以及当前路径的效果。
当使用通配符时,以及当使用特定或嵌套的匹配条件时,有许多原因,请查看并选择最适合的实现。也有同样的问题
如果您确实已登录,请在拨打电话之前进行检查:
isSignedIn() {
this.auth.onAuthStateChanged((user) => {
if (user) {
// User is signed in.
console.log("User is signed in.");
} else {
console.log("No user is signed in.");
}
});
从您的代码来看,您似乎试图访问/categories/{userId}/categories,但您的规则仅适用于/categories/{userId}。尝试将其更改为匹配/categories/{categories=**}{。我尝试使用通配符/categories/{userId=**}但是得到了同样的错误。但是使用建议的完整路径有效。我使用的通配符正确吗?我用来存储用户类别的结构正确吗?还是更有效的方法?我不确定你的应用程序的目标是什么,但是如果你需要为每个用户管理一个额外的类别集合,这似乎没问题。
/categories/{userId}/categories/{category}
isSignedIn() {
this.auth.onAuthStateChanged((user) => {
if (user) {
// User is signed in.
console.log("User is signed in.");
} else {
console.log("No user is signed in.");
}
});