angular - Angular & AngularFire & Firebase - singOut 权限不足或权限不足
问题描述
当前设置有问题。实施了firebase规则(在哪里打开)并且它破坏了我的signOut方法。原始规则集是
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
这不会产生错误。但是,以下生产规则确实
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
为 firebsae 产生此错误的函数是
this.afAuth.auth.signOut()
通过研究其他答案和类似问题,我尝试将 firebase 降级到 4.6.2,将 AngularFire 降级到 5.0.0.rc5-next,这解决了其他问题,但没有解决我的问题。也升级到最新版本的两个和仍然相同的问题。
还启用了firebase调试并得到以下错误
Firestore (5.0.4) 2018-07-19T18:38:29.488Z [Connection]: WebChannel received: {"targetChange":{"cause":{"code":7,"message":"Missing or insufficient permissions."},"targetChangeType":"REMOVE","targetIds":[2]}}
其他答案还包括在 signOut() 方法之前的以下几行,但仍然没有喜悦
firebase.database().goOffline();
this.db.database.goOffline();
在这一点上,我可以实施开放的 Firebase 规则,或者不调用 this.afAuth.auth.signOut() 并给出选择,并且没有多少人会注销应用程序然后作为另一个用户登录,我可能会那样做但只是想问在我这样做之前是否还有其他人可以提出建议。
解决方案
推荐阅读
- javascript - 使用 jquery 设置复选框时遇到问题
- sql - 分配给变量的 SQL 存储过程参数
- spring-boot - 如何使用maven build在spring boot中生成fat jar期间排除资源文件夹?
- javascript - RegEx 不适用于替换 JavaScript 方法
- assembly - 6502 (Commodore 64) 中的精灵指针
- kubernetes - 添加多个外部服务时,Egress 网关无法正常工作
- python - new_or_get 和 get_or_create 是一样的吗?
- android - 在设备上运行 React Native 时出现问题
- leaflet - 如何在 crs.simple 中测量距离?
- sql - 使用具有较高偏移量的 LAG 函数