# #javascript #reactjs #firebase #firebase-authentication
Вопрос:
Мне нужна помощь, я смотрел учебник по firebase и реагирую. а потом я понял, что учебник был для v8, а самый новый-v9
это мое firebase.js
import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';
import { getDatabase } from "firebase/database";
const firebaseConfig = {
//firebaseconfig
};
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
const database = getDatabase(app);
export { auth, database }
и тогда это мое signin.js фрагмент кода
import { auth, database } from "../Firebase/firebase";
const submitForm = async (values) => {
auth()
.signInWithEmailAndPassword(values.email,values.password)
.then((userCredentials) => {
props.history.push("/profile");
}).catch((err) => {
setLoading(false);
});
};
а затем, когда я отправляю свою форму, приложение вылетает с ошибкой
при авторизации().
Unhandled Rejection (TypeError): Object(...) is not a function
Ответ №1:
import { auth, database } from "../Firebase/firebase";
// this ^^^^ is not a function but is being used as one
// auth().signInWithEmailAndPassword(values.email,values.password)
// ^^^^ here
signInWithEmailAndPassword
необходимо импортировать из firebase/auth
, как показано ниже:
import { auth, database } from "../Firebase/firebase";
import { signInWithEmailAndPassword } from "firebase/auth"
const submitForm = async (values) => {
const userCredentials = await signInWithEmailAndPassword(auth, values.email, values.password)
// Pass the 'auth' instance here ^^^^
const { user: { uid } } = userCredentials
console.log(`userId: ${uid}`)
}
Я бы рекомендовал следовать документации вместе с любым учебником. Документация имеет как синтаксис с интервалом между именами (v8), так и модульный/функциональный (v9) синтаксис.
Комментарии:
1. спасибо за быстрый ответ, я пробовал это и, похоже, прочитал не те. Спасибо!!