Tener reglas de autenticación de inicio de sesión de base de datos en tiempo real.
Cuando ingreso los correos manualmente, los correos que autorizo ganan acceso, no hay problema. Aquí está el código:
{ "rules": { ".read": " auth.token.email == \"xx@qq.co\" || auth.token.email == \"yy.yy@yy.co\" || auth.token.email == \"ss@ss.com\" ", ".write": true } }Pero mi idea:
{"emails":{"xx@hotmail.com", "qq@gmail.com"}, { "rules": { ".read": "auth.token.email == emails", ".write": true }y captura de pantalla del código db en tiempo real:
alguna idea de este tema?
Ese segundo fragmento parece una sintaxis no válida para las reglas de seguridad de Firebase y, por lo tanto, no funcionará (en realidad, ni siquiera debería guardarse cuando lo ingresa en la consola de Firebase).
Si desea obtener acceso a una lista dinámica de usuarios, la forma idiomática es almacenar sus UID en la base de datos y luego verificar eso en sus reglas de seguridad.
Entonces, por ejemplo, podría tener esto en la base de datos:
"uidsThatAreAllowedToRead": { "uid1": true, "uid2": true, "uid3": true }Y luego, en su regla de lectura, verifique eso con:
".read": "root.child('uidsThatAreAllowedToRead').child(auth.uid).exists()" Podría hacer lo mismo con las direcciones de correo electrónico, pero tendría que codificarlas ya que las claves no pueden contener . caracteres que se requieren en una dirección de correo electrónico. El método de codificación común es reemplazar cada archivo . con , , que está convenientemente permitido en las claves de la base de datos pero no en las direcciones de correo electrónico.