#firebase #react-native #google-cloud-firestore #google-cloud-functions
#firebase #react-native #google-cloud-firestore #google-cloud-функции
Вопрос:
В настоящее время я создаю мобильное приложение marketplace с нуля и использую React Native для интерфейсной части и Firebase для серверной части (используя Firebase и Firestore).
Мне интересно, что :
-
Я должен создать RESTful API с использованием облачных функций и express для создания конечных точек API (которые будут подключаться к firebase и firestore), которые я бы вызывал из своих действий redux в моем приложении React Native (используя redux thunk).
-
или я должен вызвать firebase и firestore непосредственно из redux actions.
Я вижу пару плюсов и минусов для каждого метода.
Плюсы Restful API :
-
Безопаснее, поскольку я могу легче проверять и обрабатывать отправленные данные
-
Пользовательский ответ API (я могу манипулировать возвращаемыми данными)
Минусы Restful API :
-
Вероятно, медленнее, поскольку мне пришлось бы вызывать конечную точку API, которая затем вызовет firebase и / или firestore.
-
Будет не так просто настроить прослушивателей для данных firestore
Что вы об этом думаете?
Какой вариант мне выбрать, зная, что я прогнозирую, что приложение будет получать несколько тысяч пользователей ежедневно. Я хочу, чтобы это было как можно быстрее и безопаснее, и иметь возможность настраивать прослушивателей для целей уведомлений.
Комментарии:
1. Не зная точно, что вы пытаетесь сделать, это полностью вопрос мнения. Я подробно писал об этом в блоге . Если вы хотите начать общее обсуждение вашего конкретного варианта использования, я предлагаю опубликовать сообщение на дискуссионном форуме, который позволяет это, например, Reddit .
Ответ №1:
На мой взгляд, вы должны смешивать их, Если вам нужно управлять пользователями, продуктами и т. Д. Firebase создает клиентский и административный sdk с разными ролями. Если вам не нужно управлять какими-либо данными о продуктах, пользователях или т. Д. вы можете просто использовать клиентский sdk.
Я советую вам использовать admin sdk в API (на стороне сервера) и не стесняйтесь использовать клиентский sdk на своих клиентах.
Использовать в качестве управления API, прослушиванием данных, чатом в реальном времени и т. Д. через клиентский sdk.
Вы можете проверить admin и client sdk. Также пакеты npm для React Native здесь .
Комментарии:
1. Данные, которые необходимо обновлять в режиме реального времени, например, нравится, не нравится, рейтинг, которые должны вызывать firebase напрямую из клиента. Для других случаев рекомендуется использовать admin sdk на стороне сервера. Если вы намерены выполнить авторизацию, тогда необходимо использовать admin sdk.
Ответ №2:
Смешивание поможет, вы можете попробовать:
- Прослушивайте небольшие объемы данных с помощью клиентского SDK
- Запись и сортировка данных с использованием облачных функций
По моему опыту, запись в базу данных firebase, которая использует упорядоченные идентификаторы (в моем случае), приводит к некоторым огромным проблемам в долгосрочной перспективе. Я потерял значительную часть данных, когда мое приложение случайно записало в корневой индекс вместо дочернего индекса, когда приложение было возобновлено из бездействия, потому что система Android очистила оперативную память.
Кроме того, для уведомления используйте Firebase Cloud Messaging.