Удалить данные Firebase по истечении установленного времени, независимо от закрытия приложения

Я пытаюсь разрешить своим пользователям устанавливать таймер истечения срока действия (до 2 часов) для данных, хранящихся в Firebase. Данные должны быть удалены после истечения таймера, но у меня возникли проблемы с поиском решения, которое бы выполнило это, даже если работа приложения завершена. Таймер также отображается для пользователя, и его необходимо поддерживать в актуальном состоянии, когда пользователь повторно открывает приложение. Кроме того, другие пользователи не должны видеть данные, если срок их действия истек, когда приложение создателя было закрыто.

Единственное, что я мог придумать, это использовать сравнения временных меток, что кажется действительно неэффективным. Каков наилучший подход к этому? Заранее спасибо!


person Julian Lee    schedule 07.05.2016    source источник
comment
В базе данных Firebase нет поддержки времени жизни на стороне сервера. Вам нужно будет запустить скрипт (на стороне клиента или на вашем собственном сервере). См. stackoverflow.com/questions/ 32004582/   -  person Frank van Puffelen    schedule 07.05.2016
comment
у каждого пользователя есть свой собственный таймер и данные? Другими словами, могут ли пользователи видеть данные друг друга и/или устанавливать таймер для других пользователей?   -  person Jay    schedule 07.05.2016
comment
Пользователи могут видеть данные друг друга (при условии, что срок их действия не истек), но не могут устанавливать таймер для других пользователей.   -  person Julian Lee    schedule 07.05.2016
comment
@FrankvanPuffelen Это все еще так сегодня?   -  person    schedule 02.06.2017
comment
Да. Разница лишь в том, что теперь такой скрипт можно запустить в Cloud Functions for Firebase.   -  person Frank van Puffelen    schedule 02.06.2017
comment
@FrankvanPuffelen Спасибо за ваш ответ. Я не нашел руководства или учебника по созданию такого скрипта (также в документации Firebase). Не могли бы вы связать нас с одним или рассказать нам, как это сделать в ответе? Ценить это! Это было бы очень полезно.   -  person    schedule 02.06.2017
comment
@FrankvanPuffelen Единственное, что я нашел, это этот бесполезный ответ: stackoverflow.com/a/42772618/5113094   -  person    schedule 02.06.2017
comment
Интересный. Потому что именно этот ответ я использовал, когда мне недавно нужно было провести плановое обслуживание с помощью облачной функции. Между этим ответом (также представленным в этом примере и упоминается в этой записи блога) и мой ответ здесь у вас есть все необходимые части .   -  person Frank van Puffelen    schedule 02.06.2017
comment
Если у вас возникли проблемы с его работой, поделитесь минимальными шагами, чтобы воспроизвести эту проблему в новом вопросе.   -  person Frank van Puffelen    schedule 02.06.2017