#reactjs #firebase #authentication #redux
#reactjs #firebase #аутентификация #redux
Вопрос:
Я изучаю, как добавить аутентификацию в проект React Firebase. Раньше, когда мне нужно было экспортировать константу конфигурации firebase, я делал это следующим образом:
const config = {
//...
};
firebase.initializeApp(config)
const database = firebase.database()
export {database}
А затем import {database} from 'path'
там, где я хочу ее использовать.
Однако в новой реализации аутентификации у меня есть что-то вроде этого:
const config = {
//...
};
class Firebase {
constructor() {
app.initializeApp(config);
/* Helper */
this.serverValue = app.database.ServerValue;
this.emailAuthProvider = app.auth.EmailAuthProvider;
/* Firebase APIs */
this.auth = app.auth();
this.db = app.database();
//etc
}
export default Firebase;
Итак, в другом файле я теперь могу import Firebase from 'path'
— однако я не знаю, как получить доступ к базе данных Firebase. Firebase.db и Firebase.database() где не работают. Спасибо за любую помощь
Ответ №1:
Отвечая на мой собственный вопрос. Сомневаюсь, что у кого-нибудь возникнет тот же вопрос, но вот он:
Теперь мы имеем дело с классом. Поэтому, когда я экспортирую Firebase, я не экспортирую его как объект, готовый к использованию (как я делал раньше) — теперь я экспортирую его как класс.
Поэтому, когда я импортирую ее в другой файл: import Firebase from 'path'
Я должен не забыть создать его экземпляр в этом файле, чтобы иметь возможность его использовать.
import Firebase from 'path' //Firebase is not an object, it is a class
const fbInstance = new Firebase(); //creating an instance of the class
const database = fbInstance.db; //each instance is assigned a db (database) through the constructor (posted earlier)
Просмотрите некоторые классы ООП (или javascript), если вы не совсем поняли это.