首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态设置vuejs2 firebase配置

动态设置vuejs2 firebase配置
EN

Stack Overflow用户
提问于 2019-08-25 17:34:37
回答 1查看 54关注 0票数 0

当前我正在通过以下方式在vuejs2中设置firebase凭据

代码语言:javascript
复制
import Vue from 'vue';
import * as firebase from "firebase";
import VueFire from 'vuefire';

var config = {
   apiKey: "",
   authDomain: "",
   databaseURL: "",
   projectId: "",
   storageBucket: "",
    messagingSenderId: ""
};

Vue.use(VueFire);
firebase.initializeApp(config);

const firebasestore = firebase;
Vue.prototype.$firebase = firebasestore;

export { firebasestore }

我想要的是在创建的组件上动态设置凭据示例,而不是apkey,authdomain,databaseUrl,projectid存储区的固定值

所以就像这样。在我的组件中,我希望将凭据设置为

代码语言:javascript
复制
created(){
 this.$firebase.set ...// here set the config details
}

是否可以这样设置而不是在固定值上设置配置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-25 20:46:05

你可以使用Vuex商店,在那里你有一个初始化Firebase的突变。

然后,您可以调用一个操作来获取Firestore。

下面是一个例子(非常粗糙的POC...):

商店

代码语言:javascript
复制
import Vue from 'vue';
import Vuex from 'vuex';
import firebase from 'firebase/app';
import 'firebase/firestore';

Vue.use(Vuex);

export const store = new Vuex.Store({
    state: {},
    actions: {
        fetchFirebase({ commit, state }) {

            firebase.firestore().collection("myCollection")
                .doc("myDocument")
                .get()
                .then(doc => {
                    console.log(doc.data());
                })
                .catch(err => {
                    console.log(err);
                });

        },
    },
    mutations: {
        initialiseFirebase(state, val) {
            firebase.initializeApp(val);
        },
    }
});

组件

代码语言:javascript
复制
<template>
  <div>
    <button @click="initFirebase" class="button">Init Firebase</button>
    <button @click="fetchFirestore" class="button">Fetch Firestore</button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },

  methods: {
    initFirebase() {
      const config = {
        apiKey: ".....",
        authDomain: ".....",
        databaseURL: ".....",
        projectId: "....."
      };
      this.$store.commit("initialiseFirebase", config);
    },
    fetchFirestore() {
      this.$store.dispatch("fetchFirebase");
    }
  }
};
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57644861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档