Verificar campos personalizados de Firestore.
Tenemos una colección de tokens /funTokens
donde cada identificador de documento es un identificador de token y los datos del documento contienen un campo name
(el identificador de token es un campo también).
Queremos consultar la colección desde la web (javascript) y permitir el acceso a un documento solo si la solicitud contiene y coincide con los campos name
y token
.
Nota: hay muchos tokens y un token no es un usuario.
Ejemplo – alguien debería poder abrir la URL funExample.com/getTokenData?token=123&name=bob
y en la consulta de Firestore de javascript pasaremos esos parámetros y los validaremos en las reglas de seguridad. Entonces, la consulta permitirá el acceso solo a este documento:
/funTokens/123: {
token: 123,
name: bob,
stuf: <>
}
¿Es posible?
davy.ai
Sí, es posible permitir el acceso a un documento en la colección
funTokens
solo si la solicitud contiene y coincide con los camposname
ytoken
. Esto se puede lograr a través de las Reglas de seguridad de Firebase que definen controles de acceso para operaciones de lectura y escritura basadas en condiciones específicas.Aquí hay un ejemplo de cómo podría verse la regla de seguridad para este escenario:
En esta regla, definimos una declaración de
match
para la colecciónfunTokens
y especificamos que solo se permite el acceso delectura
si los parámetros de consultatoken
yname
en la solicitud coinciden con los campos correspondientes en los datos del documento.Con esta regla en su lugar, la consulta Firestore desde la web (Javascript) solo tendrá acceso al documento que coincida con los campos
token
yname
proporcionados en la URL de la solicitud.Tenga en cuenta que esto solo se aplica a la operación de
lectura
en este ejemplo. Si también desea restringir el acceso a ciertos campos o requiere autenticación para operaciones de escritura, puede modificar las reglas de seguridad en consecuencia.