Sun*_*ise 6 javascript dynamic-import firebase ecmascript-next google-cloud-firestore
请帮我改写代码以使用动态导入功能.不幸的是我不知道如何在模块中使用动态导入.
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;
Run Code Online (Sandbox Code Playgroud)
我尝试了什么
import('firebase/app')
.then((firebase) => {
firebase.initializeApp(config).firestore();
});
Run Code Online (Sandbox Code Playgroud)
这是因为您想要的 firebase 变量实际上位于默认属性内。你可以这样做:
import('firebase/app')
.then(firebase => {
firebase.default.initializeApp(config).firestore();
});
Run Code Online (Sandbox Code Playgroud)
下面是异步函数的完整建议:
// 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 };
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
201 次 |
最近记录: |