Tengo un árbol json simple como este: https://ibb.co/Rgpznd0 , y mis reglas son:
{ "rules": { ".read": "auth.uid !== null", ".write": "false", } }Solo necesito leer los datos de la base de datos, recupero el token del usuario
const accessToken = await user.getIdToken();y hago una solicitud de obtención con esta url con axios:
esto funciona, pero recibo una advertencia de firebase sobre las reglas de seguridad
////////////////////////////////
ACTUALIZAR
Traté de poner las reglas así, de una manera más segura:
{ "rules": { "destinations": { "$uid": { ".read": "auth != null && auth.uid == $uid", ".write": "false" } } } }Intenté cambiar la URL de esta manera:
Pero ahora la solicitud de axios no funciona incluso si pongo el uid en la consulta.
También probé con cartero y la respuesta parece el html de la página, estoy haciendo algo mal.
¿Cómo puedo hacer eso? ¿Y obtener una respuesta json?
////////////
ACTUALIZAR 2
URL completa como solicitada
ACTUALIZAR 3
He encontrado una solución a mi problema, puede consultar la respuesta a continuación.
Dentro de onAuthStateChanged configuré una solicitud a la base de datos con la clave segura
await set( ref( db, `/${process.env.NEXT_PUBLIC_FIREBASE_ROUTE}/${user.uid}` ), true ) .then(() => { //Fullfilled }) .catch((error: Error) => { throw new Error(error.message); });Entonces no cambié los otros métodos para buscar.
En lugar de consultar, puse: 'destino' - 'tripulación' - 'tecnología' depende de las páginas a las que vayas.
Ahora la base de datos es segura, solo quienes tienen la identificación anónima pueden hacer la solicitud