2016-01-07 5 views
10

Я iPhone-приложение, и я использую Firebase в качестве моего серверного сервера. Firebase не поддерживает Push Notifications, поэтому я пытался выяснить, как включить их в свое приложение. Я прочитал этот вопрос: How to send an alert message to a special online user with firebase, но это похоже на работу, а не на фактическое решение.Лучший способ реализации push-уведомлений с Firebase

Есть ли ответ на вопрос, как это сделать? Существуют ли сторонние или API-интерфейсы, которые могут без труда реализовать эту функциональность?

Одно из решений, которое я пробовал, - использовать Zapier для подключения Firebase к Pushover.

На данный момент я смог наблюдать за событиями в приложении, которые я кодирую, а затем получать уведомления в приложении pushover на моем iphone. Однако в идеале я хотел бы получать уведомления в своем приложении, а не в приложении pushover, потому что я не хочу, чтобы пользователи нуждались в pushover, чтобы использовать мое приложение, и потому, что я хочу, чтобы пользователи получали свои собственные уведомления, а не уведомления для всех.

Есть ли у кого-нибудь предложения относительно того, как я должен справиться с этой проблемой?

Спасибо за помощь!

EDIT Это не дубликат этого вопроса: Does firebase handle push notifications? потому что я знаю Firebase не непосредственно обрабатывать уведомления толчка. Я ищу лучший косвенный способ обработки push-уведомлений с Firebase.

+0

Возможный дубликат: [Дает ли указатель firebase push-уведомления?] (Http://stackoverflow.com/questions/25078953/does-firebase-handle-push-notifications) – Pipiks

+1

Нет, это не дублирование, потому что я знаю Firebase напрямую не обрабатывает push-уведомления. Я ищу способы сделать push-уведомления, хотя Firebase не обрабатывает их напрямую. @Pipiks –

+2

На самом деле, на сегодняшний день (19 мая 2016 года) Google просто переименовал GCM в Firebase Cloud Messaging и предлагает эту функцию. См. [This] (http://stackoverflow.com/a/37336674/3032209) ответ для получения более полного ответа. –

ответ

11

Теперь Google ребрендинг GCM к Firebase Cloud Messaging и теперь предлагает эту услугу кросс платформенный. Firebase также предлагает notifications.

Эти различия между этими двумя службами:

Firebase Cloud Messaging обеспечивает полный набор сообщений возможности через своих клиентов SDKs и HTTP и XMPP сервер протоколов. Для развертывания с более сложными требованиями к обмену сообщениями FCM - правильный выбор.

Уведомления о пожарной базе - это легкое, бессерверное решение для обмена сообщениями , построенное на базе Firebase Cloud Messaging. С удобной графической консолью и уменьшенными требованиями к кодированию, уведомления Firebase позволяют пользователям легко отправлять сообщения для восстановления и удержания пользователей, стимулировать приложение роста и поддерживать маркетинговые кампании.

Если вы хотите получить более подробное сравнение. Прочитано this.

2

Есть несколько вариантов: (ну, более чем на пару, но вот два)

Анализировать обрабатывает уведомления толчка очень хорошо - у них есть, что вниз погладить, и это супер просто. Однако у вас могут быть проблемы с пользователями и учетными записями - в зависимости от того, что делает ваше приложение.

Вы упомянули Pushover. Некоторое время назад мы работали над своим API, но не через Zapier. Если я правильно помню, я считаю, что вы можете просто зарегистрировать свое приложение, отправить HTTPS-запрос на свой сервер, а затем уведомления отправляются из вашего приложения.

Кроме того, вы можете оценить, как вы используете push, так как это возможно, вы можете качать событие, подобное уведомлению, только в самом приложении.

+0

Спасибо @Jay, решение, которое я изучал, использует node.js для прослушивания изменений в конкретных каталогах Firebase например, этот вопрос предлагает: http://stackoverflow.com/questions/28686138/firebase-push-notifications-node-worker, но трудно понять, как это реализовать. Есть ли примеры, которые вы видели? –

+0

Привет @PhilipSopher, я только что реализовал настройку Parse и Firebase. У меня пока нет примера в Интернете, но вы можете помочь с любыми конкретными вопросами. Как вы уже упоминали, вы можете иметь сервер node.js для прослушивания изменений в данных Firebase. В Parse вы связываете установку пользователя (содержащую маркер своего устройства) с пользователем firebase (например, с uid). После того, как данные firebase вы прослушиваете изменения, ваш сервер node.js получает событие child_added из Firebase, и вы можете искать связанного пользователя в Parse – liampronan

+0

@liampronan, вы используете Parse только для отправки push-уведомлений или делает это есть ли другие приложения в вашем приложении? Мне бы хотелось увидеть пример кода, когда он у вас есть в сети! –

1

Вот ответ, который я получил от Firebase команды:

Firebase в настоящее время не имеет функцию Push Notification. Вы можете использовать Firebase Queue и GCM для реализации push-уведомления в вашем приложении. Очереди могут использоваться в вашем приложении Firebase для организации работников или выполнения фоновой работы, например создания эскизов изображений, фильтрации содержимого сообщений и цензуры данных или разворачивания данных из нескольких мест в базе данных Firebase. Google Cloud Messaging (GCM) - это бесплатный сервис, который позволяет разработчикам отправлять сообщения между серверами и клиентскими приложениями и доступен как в iOS, так и в Android.

Вы можете нажать объект с некоторыми данными в место/queue/tasks в вашей Firebase, используя любой клиент Firebase или REST API. Рабочие, слушающие в этом месте, автоматически подберут и обработают работу. От этого ваши работники могут сделать push-уведомление GCM.

(конец сообщения от команды Firebase)

~~~~~~~~~

Вот мой анализ:

Похоже, есть несколько решений, но два лучше это:

1) Используйте FirebaseQueue с облачными сообщениями Google.

2) Используйте функцию Push Notification в Parse в приложении Firebase.

Я не уверен, что лучше. Parse кажется более доказанным, но Firebase Queue более легко интегрируется в приложение (т. Е. Приятно иметь все на Firebase и не создавать приложение Parse)

В любом случае, я надеюсь, что эта нить поможет другим людям!

+1

Три вещи: Если мой ответ помог вам, пожалуйста, примите это! Не публикуйте ответ на свой вопрос - отредактируйте свой вопрос с дополнительной информацией или отредактируйте ответ или опубликуйте комментарий. Вам действительно нужно перейти к примеру приложения Parse Notifications. Это очень просто и может быть интегрировано в ваше приложение с очень небольшим количеством времени и усилий. Рад, что мы могли бы помочь! – Jay

+0

Спасибо @Jay за помощь! Я новичок в stackoverflow и не совсем понимаю приличия.Мне просто понравился ваш пост, но я оставлю второй ответ, потому что он часто помогает мне читать много разных ответов вместо одного. Но опять же, спасибо за вашу помощь. Я рассмотрел пример Parse, и это было очень полезно! –

6

Если вы хотите, чтобы устройство выводило сообщения устройства, а не только сервер на устройство, единственным найденным решением было OneSignal. Я смог добавить базовое устройство для поддержки push push-сообщений для своего приложения примерно через час, и в настоящее время он свободен.

Оба Batch и Firebase только поддержка сервера устройства кнопочных сообщений, а не то, что вы хотите для чата приложение

+0

** Пакет поддерживает push-уведомления на стороне клиента **, а также с помощью [Transactional API] (https://batch.com/doc/api/transactional.html) непосредственно из кода приложения. Основной пример с нашим клиентом [Swift] (https://gist.github.com/abarisain/91ff0812e65cfcb85b3a9195a0f76622). –

+1

Я не сделал вывод из описания API Transactional, что он был поддержан: «Пакетный транзакционный API - это RESTful API, который позволяет отправлять уведомления от ваших собственных систем конкретным пользователям на основе их токена устройства или ваших собственных идентификаторов пользователей» I подумали, что ваши собственные системы были вашими серверами для запуска кампании. Кроме того, вы должны быть пользователями Premium, Pro или Enterprise: «Транзакционный API позволяет вам настроить до 10 000 токенов и доступен для пользователей Premium, Pro и Enterprise» – n6xej

+0

Как только у вас есть доступ к открытому API , вы можете вызывать его там, где хотите (серверный код или код на стороне клиента), он действителен для Batch и всех других поставщиков push-уведомлений. –

0

У меня была такая же проблема, и удалось выяснить решение некоторое время назад. Я подробно изложил свое решение в следующих должностях: https://stackoverflow.com/a/44192515/7048719 и https://stackoverflow.com/a/42240984/7048719

Вам необходимо создать класс службы данных firebase и использовать общий экземпляр для хранения наблюдателей в памяти, когда приложение переходит в фоновый режим. Оттуда это просто вопрос, что вы хотите.

Смежные вопросы