entonces tengo un sitio web, que tiene 2 proyectos firebase. Una es mi propia aplicación Firebase ( A ) y otra es la aplicación Firebase del usuario ( B ) que usará mi sitio web. Considérelo como una especie de tablero que estoy construyendo donde el usuario ingresa su configuración de base de fuego y tengo que obtener datos de su aplicación B de base de fuego y mostrarlos en el sitio web. Pero aquí es donde está mi problema, no puedo obtener los datos de su aplicación debido a las reglas de seguridad.
Como el usuario solo está autenticado para el proyecto firebase A , mientras trato de obtener datos de B , me arroja Access Denied debido a que sus reglas de seguridad solo permiten solicitudes que tienen un objeto de auth .
(Si hubiera una manera de permitir solicitudes de un dominio específico o algo similar, mi vida habría sido mucho más fácil en este momento).
Entonces, para evitar esto, decidí autenticar también al usuario en B , pero no puedo hacerlo así:
createUserWithEmailAndPassword(authForProject1, email, password) .then((userCredential) => { createUserWithEmailAndPassword(authForProject2, email, password); })Como no tengo la configuración del usuario en el momento de la autenticación, no puedo usar este método.
Entonces traté de autenticar con tokens personalizados , pero aparentemente los tokens de la aplicación A no funcionan en la aplicación B Estaba intentando crear un createCustomToken() desde mi aplicación e iniciar sesión con un signinWithCustomToken() desde su aplicación, ya que solo tengo las claves de administración para A y no para B Y no tomaré las claves de administración de mis usuarios porque eso significa literalmente darme la clave privada de su proyecto.
Después de fallar nuevamente, decidí almacenar los detalles de inicio de sesión del usuario en window.localStorage (correo electrónico y contraseña encriptados) y autenticar al usuario en la aplicación B cada vez que obtengo la configuración. Pero esta fue una mala idea (creo que nunca debería almacenar credenciales en el almacenamiento local), así que nunca probé esto.
Ahora estoy literalmente en un bloqueador y no tengo idea de cómo seguir adelante. Cualquier ayuda es apreciada.