Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

421
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda