我正在尝试将 Firebase 连接到我的项目。为了使代码更简洁、更可重用,我想将 Firebase 代码添加到帮助程序或自定义挂钩中。
这是我到目前为止:
使用Firebase.ts
import { useState, useEffect } from 'react';
import firebase from 'firebase/app';
import 'firebase/analytics';
import 'firebase/remote-config';
const useFirebase = () => {
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_MESSAGING_SENDER_ID,
appId: process.env.FIREBASE_APP_ID,
measurementId: process.envg.FIREBASE_MEASUREMENT_ID,
};
useEffect(() => {
// firebase.analytics();
// firebase.remoteConfig();
firebase
.initializeApp(firebaseConfig)
.firestore()
.collection('notes')
.add({ title: 'Working', body: 'Connection is working' });
}, []);
};
export default useFirebase;
所以我可以在另一个文件中使用它,比如:
import { useFirebase } from 'app/hooks';
useFirebase();
这是赖特的方法吗?
更新:
受到评论的启发,我创建了一个帮手 firebase.ts
firebase.ts
import firebase from 'firebase/app';
import 'firebase/analytics';
import 'firebase/remote-config';
import 'firebase/firestore';
import config from 'client/config';
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_MESSAGING_SENDER_ID,
appId: process.env.FIREBASE_APP_ID,
measurementId: process.envg.FIREBASE_MEASUREMENT_ID
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
}
export default firebase;
现在在另一个文件中我正在导入firebase
:
import firebase from 'app/helpers/firebase';
firebase
.firestore()
.collection('notes')
.add({ title: 'Working', body: 'Connection is working' });
我添加firestore
以测试 Firestore 是否已连接到我的应用程序。我只需要analytics
和remote-config
来自 Firestore。
1)有没有其他方法可以测试它是否连接正确?
2)在助手中我初始化了 Firebase。有那个文件就够了吗?或者我必须在某个地方导入它?