Estoy trabajando en las reglas para un proyecto. Este proyecto es una aplicación desarrollada con React-Native y la biblioteca react-native-firebase.
Ya coloqué las reglas principales basadas en roles y funcionan como se esperaba.
Estoy luchando cuando trabajo con la validación de cadenas. Estoy tratando de permitir emojis usando la función de matches() de las reglas de firestore y hasta ahora no tengo la solución correcta.
Aquí está mi código:
function ValidateUser(user) { return ( /////// user.Description is string && user.Description.matches("[a-zA-Z0-9_ /some more characters/]+") /////// ) }El problema aquí es que estoy bloqueando cualquier otro carácter que incluya Unicode y emojis también.
Encontré algunas soluciones en línea como agregar esto a mi expresión regular:
\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]O incluso algo como esto:
\x00-\x7F or this one \xFFFFNinguno de ellos parece funcionar dentro de las reglas de Firestore.
Así que traté de trabajar al revés y en lugar de permitir los caracteres que quiero, traté de excluir a los que no quiero así:
user.Description is string && user.Description.matches("[/unwanted special characters/]+") == falseDebería permitir que un usuario escriba solo si esto es falso si ninguno de estos caracteres coincide dentro de la cadena. Pero por alguna razón, solo funciona cuando solo hay esos caracteres en la cadena...
Por ejemplo :
&#/ esto no permitirá que el usuario escriba
Hello&#/ esto permitirá que el usuario escriba mientras no debería para mi caso de uso.
¿Alguien sabe cómo hacer que funcione? ¿O cómo permitir emojis con reglas de firestore?
Gracias por tu ayuda !