javascript - Firestore: FirebaseError: Permisiuni lipsă sau insuficiente


Am următoarea regulă:

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

Deci practic, vreau ca utilizatorii autentificați să poată citi/scrie în colecțiile users și documents. Dar încerc să scriu atunci când creez un utilizator și mă autentific:

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

Dar primesc o eroare:

FirebaseError: Missing or insufficient permissions.

Nu sunt sigur ce fac greșit. Orice ajutor ar fi foarte apreciat - mulțumesc!

Răspuns #1

Așa cum este explicat în document, trebuie să incluzi regulile specifice pentru calea ta într-un bloc match /databases/{database}/documents astfel:

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
    }


  }
}

Notă laterală: Fiți conștienți că regulile care se bazează doar pe request.auth.uid != null nu securizează cu adevărat baza de date, vedeți acest răspuns de pe SO.