#reactjs #firebase #firebase-tools
#reactjs #firebase #firebase-инструменты
Вопрос:
Как я могу использовать эмуляторы firebase локально для:
Я могу запускать эмуляторы локально на порту 4000, однако я не могу запустить свое приложение react локально, чтобы использовать его.
- Облачные функции
- Аутентификация
- Firestore
У меня есть файл с именем firebase.js который содержит следующее:
import firebase from "firebase/app";
import "firebase/auth";
let config = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DB_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGE_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
};
export default app;
Внутри других моих файлов я вызываю firebase, например, для аутентификации:
//Login
const login = async (email, password) => {
return await app.auth().signInWithEmailAndPassword(email, password);
};
Ответ №1:
import firebase from "firebase/app";
import "firebase/auth";
import "firebase/functions";
import "firebase/firestore";
let config = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DB_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGE_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
};
const app = firebase.initializeApp(config);
if (window.location.hostname === "localhost") {
app.functions().useFunctionsEmulator("http://localhost:5001");
app.auth().useEmulator("http://localhost:9099");
app.firestore().settings({
host: "localhost:8080",
ssl: false,
});
}
export default app;