Estoy tratando de hacer una aplicación de prueba usando Firebase como mi backend y JavaScript modular como secuencia de comandos del lado del cliente y encontré un problema recientemente.
Así que quería hacer un temporizador que muestre al usuario cuánto tiempo queda antes de que finalice la prueba y se envíe automáticamente. Pero, ¿cómo lo implemento de tal manera que el usuario final no use el depurador u otras herramientas para manipular este temporizador? También en las reglas de Firebase, me he asegurado de que el acceso de escritura esté deshabilitado después de que finalice el "intervalo de tiempo" para intentarlo.
Por ejemplo: digamos que la prueba 1 está activa de 1:00 p. m. a 12:00 p. m. (intervalo de tiempo) y puede intentarlo durante 60 minutos en cualquier momento en este intervalo de tiempo. ¿Cómo puedo asegurarme de que el cliente intente realizar la prueba solo durante 60 minutos y no le guste si comienza desde la 1:00 y manipula el tiempo para escribir hasta las 12:00 p. m.?
¿Cómo puedo implementar esto? ¿Necesito soporte del lado del servidor como funciones en la nube? No quería usarlos hasta ahora, ya que enviar una solicitud cada 1 segundo o 5 segundos consume una gran cantidad de recursos de datos cuando esta aplicación se adapta a más personas. (También que lo estoy construyendo en Spark Plan)
Debe verificar este lado del servidor. No puede evitar de manera eficiente que alguien realice la edición del lado del cliente.
startTime .endTime .endTime - startTime <= 60 mins