React Redux Firebase: как работать с конфигурацией firebase, определенной и экспортируемой как класс?

#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), если вы не совсем поняли это.