gpt4 book ai didi

javascript - 使用动态导入重写 Firebase 服务

转载 作者:行者123 更新时间:2023-12-01 15:18:25 25 4
gpt4 key购买 nike

请帮我重写代码以使用动态导入功能。
不幸的是,我不知道如何在模块中使用动态导入。

import firebase from 'firebase/app';
import 'firebase/firestore';

const config = {
apiKey: '',
authDomain: '',
databaseURL: '',
projectId: '',
storageBucket: '',
messagingSenderId: '',
};

const initApp = firebase.initializeApp(config).firestore();
initApp.settings({
timestampsInSnapshots: true,
});
const app = firebase.app().firestore();

export default !firebase.apps.length ? initApp : app;

我尝试了什么

import('firebase/app')
.then((firebase) => {
firebase.initializeApp(config).firestore();
});

最佳答案

那是因为您想要的 firebase 变量实际上位于默认属性内。你可以这样做:

import('firebase/app')
.then(firebase => {
firebase.default.initializeApp(config).firestore();
});

带有异步功能的完整建议如下:
// firebase-service.js

const firebaseConfig = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.FIREBASE_DATABASE_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MSG_SENDER_ID,
appId: process.env.FIREBASE_APP_ID
};

let db;

async function getFirestore () {
if (!db) {
const { default: firebase } = await import('firebase/app');
await import('firebase/firestore');

const app = firebase.initializeApp(firebaseConfig);
db = app.firestore();
}

return db;
}

export { getFirestore };

关于javascript - 使用动态导入重写 Firebase 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50588428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com