Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 插件下未定义privateRuntimeConfig值_Firebase_Vue.js_Nuxt.js - Fatal编程技术网

Firebase 插件下未定义privateRuntimeConfig值

Firebase 插件下未定义privateRuntimeConfig值,firebase,vue.js,nuxt.js,Firebase,Vue.js,Nuxt.js,历史上,我想知道如何在插件下的Nuxt中使用privateRuntimeConfig。 我想通过env运行firebase initialize函数,但$config似乎未定义。 我错过什么了吗 //nuxt.config.js privateRuntimeConfig:{ 火基:{ apiKey:process.env.apiKey, authDomain:process.env.authDomain, databaseURL:process.env.databaseURL, projectI

历史上,我想知道如何在
插件
下的Nuxt中使用privateRuntimeConfig。 我想通过env运行firebase initialize函数,但
$config
似乎未定义。 我错过什么了吗

//nuxt.config.js

privateRuntimeConfig:{
火基:{
apiKey:process.env.apiKey,
authDomain:process.env.authDomain,
databaseURL:process.env.databaseURL,
projectId:process.env.projectId,
storageBucket:process.env.storageBucket,
messagingSenderId:process.env.messagingSenderId
}
}
//插件/firebase.ts

从“firebase”导入firebase;
如果(!firebase.apps.length){
firebase.initializeApp($config);//错误:$config未定义
}
导出默认firebase($config);

您可以从nuxt的服务器端生命周期钩子访问privateRuntimeConfig变量:如NuxtServerInit、Validate()、asyncData()或fetch(上下文)

nuxt生命周期:

如果private和public runtime config具有相同的值,则private runtime将覆盖public

让我用一个简单的代码来解释

numxt.config.js

...
publicRuntimeConfig: {
  API_KEY: '1245',
},
privateRuntimeConfig: {
  API_KEY: 'AIzaSyAxwq', //Real API-Key
},
...
import Vue from 'vue';

export default function({ app }, inject) {

  const helpers = {
    getApiKey() {
      return app.$config.API_KEY;
    }
  };
  inject('helpers', helpers);
}
plugins/helpers.js

...
publicRuntimeConfig: {
  API_KEY: '1245',
},
privateRuntimeConfig: {
  API_KEY: 'AIzaSyAxwq', //Real API-Key
},
...
import Vue from 'vue';

export default function({ app }, inject) {

  const helpers = {
    getApiKey() {
      return app.$config.API_KEY;
    }
  };
  inject('helpers', helpers);
}
页面/test.vue

...
<script>
  export default {
    asyncData(context) {
      console.log(context.$helpers.getApiKey()) --> displays: AIzaSyAxwq
    },
    created() {
      console.log(this.$helpers.getApiKey()) --> displays: 12345
    }
  }
</script>
...
。。。
导出默认值{
异步数据(上下文){
console.log(context.$helpers.getApiKey())-->显示:AIzaSyAxwq
},
创建(){
console.log(this.$helpers.getApiKey())-->显示:12345
}
}
...

为什么希望定义它?您认为它应该具有什么值?我认为
$config
包含在nuxt.config.js中的
privateRuntimeConfig
下定义的值。↑ 如图所示