Сейчас мы разрабатываем приложение с полным стеком, используя
- Хостинг Firebase (Nodejs + vue)
- Firebase Firestore (Документ
база данных)
- Функции Firebase (Действуя как уровень API)
У нас есть 2 разных подхода к взаимодействию и привязке данных в реальном времени, которые хранятся в Firebase firestore .
Подход 1.
Приложение выполнит firebase.onCall () , который вызывает функции firebase, которые действуют как REST-API-слой между хостингом и firestore. Мы искали потоковый API, но он, вероятно, не сработает в нашем случае, поскольку ограничение времени выполнения для функции firebase составляет 9 минут.
Проблемы с этим подходом:
- Нет опции для привязки данных в реальном времени (Мы должны выполнить запрос, чтобы проверить, изменены ли данные / обновлены)
Подход 2:
Мы будем использовать Firebase Admin SDK и, в конечном итоге, плагин для Vue Vue-firestore и напрямую взаимодействовать с Firestore, поэтому в этом подходе мы не будем использовать firebase-функции в качестве уровня API.
Проблемы с этим подходом:
- Вероятно, нарушает лучшие практики для 3-х уровневой архитектуры, нам лучше иметь весь доступ к базе данных на стороне сервера + на уровне API.
Итак, в этом случае мы хотели бы изучить и узнать, какой подход к проектированию нам следует использовать в целом, и какие подводные камни могут возникнуть при подходе 1 против подхода 2?
И как мы можем предоставить нашему веб-интерфейсу набор данных базы данных в режиме реального времени, не имея внешнего интерфейса, выполняющего запросы к API на предмет обновлений.
Согласно этой проблеме, автор в этом блоге fullstackfirebase.com / cloud-firestore / вводная информация предполагает, что мы не должны использовать функцию firebase в качестве уровня API, поскольку администратор sdk действительно решает все проблемы.
, Таким образом, в этом пункте мы довольно смущены, каким путем мы должны идти.