Eliminar datos de firebase de más de 2 horas

2 minutos de lectura

Eliminar datos de firebase de más de 2 horas
carterw485

Me gustaría eliminar los datos que tienen más de dos horas. Actualmente, en el lado del cliente, reviso todos los datos y ejecuto una eliminación en los datos obsoletos. Cuando hago esto, el db.on('value') La función se invoca cada vez que se elimina algo. Además, las cosas solo se eliminarán cuando un cliente se conecte, y ¿qué podría pasar si dos clientes se conectan a la vez?

¿Dónde puedo configurar algo que elimine datos antiguos? Tengo una marca de tiempo dentro de cada objeto creado por un JavaScript Date.now().

  • puedes usar $interval que se disparan en cada intervalo de tiempo dado en milisegundos, configúrelo en 7200000, es decir, 2 horas

    – Gaurav bhavsar

    14 de agosto de 2015 a las 7:32


  • ¿Seguiría siendo una solución del lado del cliente? Solo puedo mostrar los datos más nuevos sin ningún problema, pero me gustaría que la base de datos elimine automáticamente todo lo que tenga más de dos horas en lugar de tener que ejecutar manualmente un script de vez en cuando.

    – carterw485

    14 de agosto de 2015 a las 7:47

  • bien, entonces usa remove() método, que elimina todos los datos de la ubicación de firebase. controlar esta

    – Gaurav bhavsar

    14 de agosto de 2015 a las 8:02


  • Vi que ahora hay funciones programadas en Firebase: firebase.google.com/docs/functions/schedule-functions

    – Zeus

    28 de mayo de 2020 a las 18:04

  • En su ejemplo, obtiene los registros guardados hace 2 horas o menos. Tal vez debería usar endAt en lugar de startAt. Pero igual gracias por tu respuesta me ayudo

    – Crema

    17 de mayo de 2016 a las 7:03


  • ¡Buena atrapada! Reparado.

    –Frank van Puffelen

    17 mayo 2016 a las 9:55

  • Hola Frank, estoy tratando de hacer algo similar en Swift, sin embargo, parece que no puedo entender qué método está llamando en el oyente. Pasé algunas horas buscando e intentando, ¡pero decidí que era hora de pedir ayuda!

    – Ahi

    16 de septiembre de 2016 a las 7:46

  • Cuando implementé esto, todos los datos se eliminaron después de 1 segundo en lugar de 2 horas. He copiado y pegado exactamente el código, así que no sé qué está pasando.

    – Dani Kemper

    18/09/2017 a las 19:13

  • Nota para cualquier persona que cargue una marca de tiempo desde iOS: timeIntervalSince1970 está en segundos y Date.now() está en milisegundos, así que asegúrese de convertir según sea necesario

    – Simón

    3 de febrero de 2019 a las 17:48

  • ¡Gracias por el trabajo cron! salvavidas!

    – devDeejay

    28 de enero de 2020 a las 13:14

  • cronjob es gratis?

    – lucas cruz

    14 de agosto de 2020 a las 10:51

  • Necesito una solución en swift 4, ¡alguna idea!

    – steve sarsawa

    20 de junio de 2019 a las 6:24

  • ¿La marca de tiempo es un número largo (en firebase) o es un tipo de marca de tiempo?

    – lucas cruz

    14 de agosto de 2020 a las 10:49

¿Ha sido útil esta solución?