【问题标题】:Firestore: FirebaseError: Missing or insufficient permissionsFirestore:FirebaseError:缺少权限或权限不足
【发布时间】:2021-05-25 12:45:16
【问题描述】:

我有以下规则:

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
    }
}

所以基本上,我希望经过身份验证的用户能够读/写usersdocuments 集合。但是我在创建用户并登录时尝试编写:

                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.

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

【问题讨论】:

    标签: javascript typescript firebase google-cloud-firestore firebase-security


    【解决方案1】:

    正如doc 中所述,您需要在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
        }
    
    
      }
    }
    

    附注:请注意,基于request.auth.uid != null 的规则并不能真正保护您的数据库,请参阅此SO answer

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 2021-12-31
      • 2021-08-24
      • 2018-04-25
      • 2022-01-15
      • 2019-02-26
      • 2022-01-25
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多