当前位置: 首页 > 知识库问答 >
问题:

缺少或权限不足

施博文
2023-03-14

我有以下规则:

rules_version = '2';
service cloud.firestore {

    match /documents/{any} {
        allow read, write: if request.auth.uid != null
    }

    match /users/{any} {
        allow read, write: if request.auth.uid != null
    }
}

所以基本上,我希望经过身份验证的用户能够读/写用户文档集合。但当我创建一个用户并登录时,我会尝试写:

                const registerRes = await firebase
                    .auth()
                    .createUserWithEmailAndPassword(email, password);
                await registerRes.user.updateProfile({
                    displayName: fullName
                });
                registerRes.user.sendEmailVerification();
                await firebase.firestore().collection('users').doc(registerRes?.user?.uid).set({...someStuff});

但我有一个错误:

FirebaseError: Missing or insufficient permissions.

不知道我做错了什么。任何帮助都将不胜感激——谢谢!

共有1个答案

孔琪
2023-03-14

正如文档中所解释的,您需要在match/databases/{database}/documents块中包含特定于路径的规则,比如:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    match /documents/{any} {
        allow read, write: if request.auth.uid != null
    }

    match /users/{any} {
        allow read, write: if request.auth.uid != null
    }


  }
}

旁注:请注意仅基于请求的规则。啊。uid!=null没有真正保护数据库,请看下面的答案。

 类似资料:
  • 使用Quasar和Firebase的Im 我得到FireBaseError:缺少或权限不足。控制台错误 错误 脚本: 每当我把 发生缺少权限的情况 但当我移除绑定时,它没有错误 但我想在字段中获取username:值并将其放在我的导航上 firebase-用户名 但我不能得到它除非我移除 同样,当我移除它时,丢失权限的情况再次发生。 我该怎么办 整个代码:

  • 我在自学firestore,我想不出一种方法,只允许用户更新、删除或阅读他们添加的集合。 我使用firebase auth进行用户处理。对于每个集合,我将作为保存在数据库中。 这是我的规矩 当我试图读取/获取数据时,我得到错误。 我正在使用firestore的web api(JavaScript)。这是我用来读取数据的代码。

  • 我的Firestore数据库有一些用户和一些s。如果没有其他人认领,用户可以认领。他们通过在上创建一个文档来声明,该文档有一个名为的字段,该字段是对他们自己的用户文档的引用。 我想我已经在这些安全规则中捕捉到了: 但是,当为所有权删除文档时,我获得了: 我是这样做的: 如果我打开read和write设置为true的文档,就不会出现此异常。 我的规则怎么了?他们用模拟器测试正常。

  • 我编写了一些与默认规则完美配合的代码。代码如下: 但如果我用这些规则 我明白了 我做错了什么?

  • 所以我已经在谷歌和stack上搜索过了,我找到了一堆有同样错误的人,但是没有一个解决方案能解决我的问题。 我正在使用的: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres公司 我认为问题在于命名查询,也许还有ManyToMany关系。 User.java SystemRole.java 持久性.xml user-orm.xml context

  • 今天,我调试了我的代码。但是,当我删除bot的权限时,出现了一个错误,“discordapi:缺少权限”。因此,我尝试了一些方法让bot检查它是否具有所需的权限。但是,当我尝试下面的代码时,我再次遇到一个错误:“UnhandledPromisejectionWarning:TypeError:无法读取未定义的属性'has'”