Я создаю облачную функцию для выполнения SSR на некоторых маршрутах моего приложения.
Я планирую повторно использовать мой клиентский код для рендеринга моего приложения на сервере (с использованием response-dom / server renderToString
method).
Вот что:
Мой код клиента выполняет import firebase from firebase/app
для запроса данных из Firestore. Но в моей облачной функции я должен использовать firebase-admin
, верно? Или возможно использовать пакет firebase
на сервере?
Мой вопрос:
Предполагается, что мне придется использовать firebase-admin
нана стороне сервера для запроса Firestore, что мне делать с моим оператором import firebase from firebase/app
, так как этот пакет не будет установлен на сервере?
OPTION # 1
ЕслиЯ устанавливаю его (добавляю как зависимость к package.json
в папке functions ) и не использую его?
OPTION # 2
Должен ли я сделать копию файла и изменить его для сборки на сервере?
Я не думаю, что это лучший вариант, так как я хотел бы отображать файлы приложения как они есть. Я просто сообщу коду о том, что если он получает данные от реквизитов (предоставляемых кодом функции облака с использованием firebase-admin
), он не должен делать какие-либо вызовы API для firebase
, потому что он работает на сервере.
Есть ли лучшая практика для этого варианта использования? Есть ли лучшие варианты, которых я не вижу?
Примечание: Вся выборка данных с использованием firebase-admin
внутри моего кода функции облака будет происходить вне моего реального приложения "клиент"код". Когда у него есть данные, оно будет отображать приложение "клиентский код" вместе с ним, используя метод renderToString
из React.