Ответ 1
Codeek имеет хорошую точку зрения, что этот вопрос основан на мнениях, поэтому возьмите мой ответ с солью.
У меня есть опыт работы с Parse и Firebase, но не с Cognito. По моему опыту, Parse лучше работать с большими базами данных на основе отношений. (Базы данных I.E., где несколько классов объектов указывают друг на друга и взаимодействуют). В этой системе очень легко хранить много данных очень кратко, но работа с этими данными осуществляется с помощью моментальных снимков. Это означает, что вы можете сделать снимок данных, отредактировать его, а затем обновить сервер с обновленным снимком. Это идеально подходит для таких вещей, как приложение доставки, где только один пользователь обновляет заказы на нашем сервере в любой момент.
Firebase реализует схему модели-наблюдателя, и поэтому она намного лучше подходит для приложений, которые очень интерактивны. Например, я использовал Firebase для создания игры в режиме реального времени с горячим картофелем. Преимущество здесь в том, что изменения в данных на сервере автоматически вытесняются на все устройства, зарегистрированные в качестве слушателей (функциональность, недоступная в Parse из моего опыта). Это позволяет всем пользователям на одной странице все время. Недостатком является то, что база данных структурирована иерархически и не имеет определенных "объектов". Скорее, он структурирован через пары ключ/значение, где родительские ключи не могут иметь связанного значения. Чтобы проиллюстрировать это, образец структуры для хранения игры в моей базе данных выглядел примерно так:
-Games
--1
---Users
----1 = "[email protected]"
----2 = "[email protected]"
---PotatoHolder = 1
---TimeRemaining = 30
---Loser = -1
Cognito Я не знаком с этим, поэтому я позволю кому-то объяснить, как эта система баз данных разработана.
В целом, codeek правильно, что это вопрос, основанный на мнении, но для двух ваших вариантов хорошее практическое правило из моего опыта заключается в том, что Parse является фантастическим для больших баз данных отношений в сочетании с однопользовательскими приложениями (т.е. однопользовательские или пошаговые игры). Firebase больше подходит для иерархических систем передачи данных в сочетании с многопользовательскими приложениями в режиме реального времени.
Надеюсь, это поможет! Если вы могли бы опубликовать немного больше о том, какое приложение вы пытаетесь построить, возможно, я или кто-то еще мог бы дать немного больше рекомендаций.
Расширенный ответ:. Хотя этот вопрос был отмечен как не относящийся к теме, ответить на вопрос о последующих действиях Nidhi, если есть способ использовать Parse в качестве модели-наблюдателя: не легко. Использование таймера - самый простой вариант. Другой вариант - использовать push-уведомления. Для этого потребуется получить разрешение от пользователя. Вы можете установить Cloud Code на Parse, чтобы автоматически отправлять push-уведомления всем соответствующим пользователям, а затем перехватывать их внутри вашего клиента, чтобы они "молчали". Другими словами, когда они прибудут, вы можете попросить своего клиента обновить игру, не показывая ленту или уведомление, как обычные push-уведомления. Я не делал этого сам, поскольку я предпочитаю использовать Firebase для такого приложения, но я считаю, что это возможно.
Источник: Автоматическое обновление PFQueryTableView, когда новые данные обновлены или обновлены в любой момент с использованием анализа
Ответ Кита похож на ссылку Нидхи на обновление PFObjects через таймер, комментарий Handsomeguy относится к возможности "тихих" push-уведомлений.