Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

418
Views
Usando Firebase DB Emulators, ¿cómo borrar la base de datos entre pruebas y evitar PERMISSION_DENIED?

Estoy siguiendo esta guía para configurar los emuladores de Firebase para probar las reglas de seguridad de mi base de datos en tiempo real: https://firebase.google.com/docs/emulator-suite/connect_rtdb#clear_your_database_ between_tests

En "Borrar su base de datos entre pruebas", sugiere hacer:

 firebase.database().ref().set(null);

Sin embargo, mis reglas de seguridad impiden que mi aplicación lo haga.

Aquí está mi código:

 import * as firebase from '@firebase/testing'; import fs from 'fs'; const app = firebase.initializeTestApp({ databaseName: 'myDb', auth: { uid: 'myuid', }, }); describe('test', () => { beforeEach(async () => { await firebase.loadDatabaseRules({ databaseName: 'mydb', rules: fs.readFileSync('database.rules.json', 'utf8'), }); await app.database().ref().set(null) // This line throws a permission denied error }); afterAll(async () => { await Promise.all(firebase.apps().map((app) => app.delete())); }); it('test', async (done) => { // ... // }); }

¿Cómo puedo restablecer mi base de datos entre mis pruebas?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Encontré una solución aquí

necesito usar

 firebase.initializeAdminApp({ databaseName: "myDb" });

para crear una aplicación que esté autenticada como administrador. Luego puedo restablecer la base de datos entre cada prueba:

 const app = firebase.initializeTestApp({ databaseName: 'myDb', auth: { uid: 'myuid', }, }); const adminApp = firebase.initializeAdminApp({ databaseName: "myDb" }); let backup; beforeEach(async () => { await firebase.loadDatabaseRules({ databaseName: 'myDb', rules: fs.readFileSync('database.rules.json', 'utf8'), }); await adminApp .database() .ref('/') .once('value') .then((v) => { backup = v.val(); }) }); afterEach(async ()=>{ await adminApp.database().ref('/').set(backup); })
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!