uso Nuxt.js + Firebase Firestore y trato de obtener datos del nombre de la colección TestCollection pero mostrar
Error al obtener el documento: FirebaseError: permisos faltantes o insuficientes.

mi servidor local muestra esto.
Error getting document: FirebaseError: Missing or insufficient permissions. at new n (prebuilt-306f43d8-45d6f0b9.js?a6a6:188) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:10426) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:10427) at n.onMessage (prebuilt-306f43d8-45d6f0b9.js?a6a6:10449) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:10366) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:10397) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:15160) at eval (prebuilt-306f43d8-45d6f0b9.js?a6a6:15218)aquí está el método que llama a la colección.
async testPost(){ try{ await this.$fire.firestore.collection('TestCollection').get() .then((docs) => { console.log('docs:', docs) if (docs) { docs.forEach((doc) => { console.log(doc.data()) }) } else { console.log('No such document!') } }).catch((error) => { console.log('Error getting document:', error) }) }catch (err){ console.log(err) } },en nuxt.config.js
modules: [ // https://go.nuxtjs.dev/axios '@nuxtjs/axios', ['@nuxtjs/firebase', { config: { apiKey: process.env.FIREBASE_API_KEY, authDomain: process.env.FIREBASE_AUTH_DOMAIN, projectId: process.env.FIREBASE_PROJECT_ID, storageBucket: process.env.FIREBASE_STORAGE_BUCKET, messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID, appId: process.env.FIREBASE_APP_ID, measurementId: process.env.FIREBASE_MEASUREMENT_ID, }, services: { firestore: true, storage: true, database: true, }, }], ],en base de datos.rules.json
{ "rules": { "users": { "$uid": { ".read": "$uid === auth.uid", ".write": "false" } }, "cases": { ".read": true } } }en filetore.rules
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }Tus reglas de seguridad permiten que nadie lea ningún dato de Firestore:
match /{document=**} { allow read, write: if false; }Entonces, el hecho de que su código que intenta leer datos de la base de datos sea rechazado por estas reglas funciona según lo previsto.
Estas son las reglas predeterminadas, por lo que recomiendo leer la documentación sobre cómo proteger su base de datos tanto paraFirestore específicamente como para Firebase en general .
Querrá comenzar con el cambio mínimo en sus reglas que permita que su código funcione, conocido como el principio de privilegio mínimo . Dado el código que compartiste, sería:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } match /TestCollection/{doc} { allow read: if true; } } } Así que ahora permitimos que cualquier persona en el mundo lea TestCollection completo, ya que eso es lo que parece hacer su código, pero aún no permitimos todas las demás operaciones.