> Faqs > Modificacion simultanea por dos usuarios al mismo registro en Firebase

Modificacion simultanea por dos usuarios al mismo registro en Firebase

Necesito controlar que dos usuarios no tengan la posibilidad de editar a la vez un mismo registro en una base de datos de Firebase.

A través de las reglas de seguridad de Firebase ¿como se puede controlar que cuando un usuario esté modificando un registro le niegue el acceso a los demás?

Respuestas

Firebase es una base de datos pensada justamente para el trabajo en concurrencia, de muchos usuarios, por lo que no hay problemas porque dos usuarios editen un registro al mismo tiempo.

De todos modos, me figuro que se trata más de que un usuario no pueda ver el formulario de edición, o no se le permita guardar, en el caso que otro usuario tenga el formulario de edición del mismo recurso abierto, ¿no?

En ese caso que yo sepa no existe una regla de seguridad que puedas usar específicamente. Si no me equivoco, te tocaría montarlo a partir de un campo extra en tu recurso. Ese campo sería algo como "usuario_editor", donde guardaría el identificador del usuario que actualmente tiene abierto el formulario.

Cando otro usuario entra en un formulario y detecta que el recurso tiene ese campo a cualquier valor que no sea vacío, que le advierta con un mensaje, o le redireccione a otro lugar.

Con ello tendrías la posibilidad de hacer una regla de seguridad bastante sencilla, que sería comprobar si el usuario atutenticado corresponde con el usuario que está en el campo "usuario_editor". Y, claro, una vez que se termina la edición, tendrás que redireccionar al usuario editor a otra página y vaciar el campo "usuario_editor" del recurso, para desbloquearlo y que otros usuarios lo puedan editar a partir de entonces.

Creo que sería algo así. Al menos tengo certeza en la parte de "realtime database". Quizás en "cloud firestore" tengan alguna regla específica para esto, pero lo dudo.

Miguel Angel
3145 140 209 17