前提・実現したいこと
Firebase (Hosting × Functions) × Nuxt.js (universal) で ユーザ認証のベストプラクティスを探る旅 その1
↑この内容を参考に、firebase-adminをnuxtで使い、登録されたユーザーのパスワードの変更を実装しようとしています。
上記リンクのpluginの通り、全く同じように該当のソースコードにあるような内容を実装しましたが、
このようなエラーが出てしまいます。
しかし、この該当のソースコード内にあるconsole.warnで記載している内容はターミナル上に出力されます。
なぜでしょうか?
該当のソースコード
plugins/firebase-admin.js
Javascript
1if (process.server) { 2 const admin = require('firebase-admin'); 3 console.warn('admin', admin); 4 5 if (!admin.apps.length) { 6 const serviceAccount = require('./service-account-key.json'); 7 8 admin.initializeApp({ 9 credential: admin.credential.cert(serviceAccount), 10 databaseURL: process.env.databaseURL 11 }); 12 } 13} 14 15export default admin
nuxt.config.js
Javascript
1module.exports = { 2 mode: 'universal', 3 buildDir: 'nuxt-dist/', 4 env: { 5 割愛 6 }, 7 /* 8 ** Headers of the page 9 */ 10 head: { 11 title: 割愛, 12 meta: [割愛] 13 }, 14 /* 15 ** Customize the progress-bar color 16 */ 17 loading: { color: '#fff' }, 18 /* 19 ** Global CSS 20 */ 21 css: [割愛], 22 /* 23 ** Plugins to load before mounting the App 24 */ 25 plugins: [ 26 '@/plugins/firebase-admin', 27 他割愛 28 ], 29 /* 30 ** Nuxt.js dev-modules 31 */ 32 buildModules: [ 33 ], 34 /* 35 ** Nuxt.js modules 36 */ 37 modules: [ 38 // Doc: https://axios.nuxtjs.org/usage 39 '@nuxtjs/axios', 40 '@nuxtjs/style-resources', 41 ], 42 styleResources: { 43 scss: [割愛] 44 }, 45 /* 46 ** Axios module configuration 47 ** See https://axios.nuxtjs.org/options 48 */ 49 axios: { 50 }, 51 /* 52 ** Build configuration 53 */ 54 build: { 55 publicPath: '/assets/', 56 transpile: [/^element-ui/], 57 /* 58 ** You can extend webpack config here 59 */ 60 extend (config, ctx) { 61 } 62 }, 63 router: { 64 middleware: [] 65 }, 66 serverMiddleware: [], 67 vue: { 68 config: { 69 productionTip: true, 70 devtools: true 71 } 72 } 73} 74
試したこと
スコープの問題かなと思い、
plugins/firebase-admin.js
const admin = require('firebase-admin'); if (process.server) { console.warn('admin', admin); if (!admin.apps.length) { const serviceAccount = require('./service-account-key.json') admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: process.env.databaseURL }) } } export default admin
このようにadminの宣言をスコープから外しましたがこれはこれで、firebase-adminはサーバーサイドのみ、読み込みができると言う制約にひっかかてしまい、エラーが発生してしまいます。
ヒントだけでもとても嬉しいです、また、同じようにNuxtとfirebase-adminでパスワード変更を実装されたと言う方、いらっしゃいましたら教えていただけるととても嬉しいです。
何卒、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/02 13:27