Возможно, вы захотите создать своего рода промежуточный слой (например, REST API), где конфигурация хранится только на вашем сервере. Таким образом, клиенты будут иметь доступ только к этому REST API, поэтому у вас нет шансов увидеть, что находится внутри вашей конфигурации!
В документации указано, что существует множество привязок Firebase для нескольких языков, таких как:
- Java / Kotlin
- Swift / Obj- C
- C ++
- JavaScript
Подробнее см. Здесь .
Кроме того, я думаю, что этот слой REST, который я создал, не выглядит неловким или необычным, поскольку здесь есть очень хорошая статья здесь на официальных документах.
Итак, в заключение лучше всего построить собственный REST API. Скорее всего, вы все равно будете получать уведомления на вашем сервере от Firebase, если, например, произойдет событие, однако уведомление о клиентах будет выполняться не Firebase, а вашим сервером (например, это может быть достигнуто с помощью WebSockets).
Это просто идеи, поэтому я не очень уверен. Возможно, Firebase все еще может уведомить ваших клиентов, и вам не понадобятся WebSockets.
На стороне фреймворка у вас есть много вариантов. Единственное, что действительно имеет значение, это то, что базовый язык фреймворка действительно является поддерживаемым языком многих реализаций Firebase (Java, JS, Kotlin, C ++, Swift, ...).
Я бы посоветовал вам взглянуть на приведенные ниже стандарты и рамки и выбрать тот, который вам больше нравится:
- Node.js / Express. js
- Spring Boot (или Spring MVC, если у вас нет автоматической настройки)
- JAX-RS (стандарт JavaEE)
Редактировать: Однако
Я думаю, что создание REST API только для того, чтобы преодолеть возможные проблемы с безопасностью, кажется, что все делается дважды (создание ресурсов REST, просто для вызова другого API Google). Я не хочу советовать против Firebase, поскольку управляемая событиями архитектура очень актуальна, но если вы создаете API, то, вероятно, было бы более разумным создать собственный экземпляр базы данных (NoSQL for your case of a social network seems more appropriate)
. Но опять же, я только делюсь своими мыслями:)