Существующее приложение является SPA, но при преобразовании в Universal Firebase.storage() не найдено

#firebase #vue.js #nuxt.js

#firebase #vue.js #nuxt.js

Вопрос:

У меня есть встроенное приложение nuxt.js , vue.js и firebase, и по умолчанию он построен как a Single Page Application , но я хочу преобразовать его в Server-side-rendered приложение. Но когда я изменил режим, firebase больше не распознает storage() .

Вот мой nuxt.config.js файл:

 export default {
  mode: "universal",
  target: "server",
  // Some other configuration
   ....
}
 

И вот мой firebase.js файл

 import firebaseTmp from "firebase";
import firebaseErrorsJa from "~/plugins/firebaseErrorsJa";

const config = process.env.firebaseConfig;

if (!firebaseTmp.apps.length) {
  firebaseTmp.initializeApp(config);
}
   
const storage = firebaseTmp.storage();
//some other initialization
  
//also location is not found also
if (location.hostname === "localhost") {
  db.settings({
    host: "localhost:8000",
    ssl: false
  });

  functions.useEmulator("localhost", 5001)
  auth.useEmulator('http://localhost:9099/');
}

export { db, firebase, firestore, auth, storage, firestoreTimestamp, serverTimestamp, functions, 
firebaseErrors }
 

Кто-нибудь сталкивался с этой проблемой? Почему это так?

ОБНОВЛЕНИЕ: я уже исправил ошибку. Мне просто нужно было добавить эту строку import 'firebase/storage'; в мой firebase.js файл. Теперь я должен исправить другую вещь в том же файле, потому location что не определено. Вот фрагмент кода..

 if (location.hostname === "localhost") {
  db.settings({
    host: "localhost:8000",
    ssl: false
  });

  functions.useEmulator("localhost", 5001)
  auth.useEmulator('http://localhost:9099/');
}
 

Комментарии:

1. Какая у вас версия Nuxt? Возможно firebase , несовместимо с SSR. Вы пробовали модуль Nuxt? firebase.nuxtjs.org/service-options/storage

2. Версия Nuxt 2.13.0. Я также добавил сервисы в свой nuxt.config.js файл, но он все равно не работает.

3. Что вы подразумеваете под «я также добавил сервисы»?

4. на самом деле это по этой ссылке.. Ссылка . Но все в порядке. Я уже исправил эту часть. Мне просто нужно было добавить эту строку import "firebase/storage"; в мой firebase.js файл

5. Не уверен, как ваш код работает до этого. Откуда берется местоположение? Связано ли это с этим? firebase.nuxtjs.org/service-options/functions#location