Как отправить пуш-уведомление из выгруженного из памяти приложения при наступлении определенного события?
Описание. Есть приложение, в котором пользователь сохраняет в Core Data свои данные (еду в холодильник). У каждого продукта есть свой срок годности. Задача. Сделать так, чтобы пользователю на его iPhone приходило пуш-уведомление, что, мол, срок годности какого-то продукта вот-вот закончится (допустим за 1 день до истечения). Вопрос. Как это сделать?
Так как уведомления должны приходить и в то время, когда приложение выгружено из памяти, то нужно использовать APNs. Правильно ли я понимаю, что пользовательские данные нужно будет еще и дублировать где-то на серваке (допустим, используя Firebase)? Если да, то:
1. Как авторизовать пользователя? В аналогичных приложениях не нужно как-либо регистрироваться или использовать аккаунты фейсбука или гугла для входа, мне нужно так же.
2. Как в Firebase сделать отправку пуш-уведомления за 1,2,3... дня до даты истечения (как это все настраивается)?
3. Насколько я понимаю, мне не нужно хранить удалённо все данные, введенные пользователем. Достаточно название продукта и его срок годности (фотография, количество и все такое можно опустить).
Вопрос большой и сложный, поэтому буду рад любым зацепкам (например хотя бы каких-либо ссылок куда копать).
Можно использовать не пуш уведомления, а локальные уведомления, которые будут срабатывать через указанные периоды времени (в том числе и когда приложение выгружено из памяти). И тогда не нужно ничего хранить на внешних серверах. На ютьюбе есть длинное хорошее видео по Local Notification, где все рассказывается подробно.
Tkas, https://www.youtube.com/watch?v=U1HTftA5GZw Видео длинное, во первых потому что автор не торопится :) а во вторых, там про все типы локальных уведомлений, что, я думаю, будет Вам полезно на будущее. А так, повторюсь, вам нужно уведомление, срабатывающее через интервал времени.
Еще есть такое коротенькое видео: https://www.youtube.com/watch?v=Dvhdnt12rZA просто только про один из вариантов уведомления, может даже его сначала посмотреть. Но я бы советовал все-таки первое.