Модульная Firebase v9.. нет необходимости экспортировать аутентификацию, хранить и т.д. Или создавать экземпляры?

# #firebase #authentication #module #initialization #create-react-app

Вопрос:

Я использую firebase v9 внутри программы создания приложений для реагирования. Я инициализировал различные части следующим образом:

 import { initializeApp } from "@firebase/app"; import { getFirestore } from "@firebase/firestore"; import { getAuth } from "@firebase/auth";  export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const firestore = getFirestore();  

однако есть ли вообще необходимость инициализировать и экспортировать auth и firestore (и, возможно, другие)? потому что служебная функция getAuth, getFirestore и т. Д., Используемая внутри других компонентов, Уже возвращает мне экземпляр соответствующего auth и firestore, поэтому нет необходимости создавать их в первую очередь? И как это вообще возможно?

например, внутри моего компонента входа:

 //import { auth } from '../../index' //no need to import import { getAuth} from 'firebase/auth' const auth = getAuth() // continue with auth, its already set up with your config?! signInWithEmailAndPassword(auth, email, password)...  

Комментарии:

1. В любом случае работает. Вы можете возразить, что экспорт экземпляров немного более эффективен, поскольку он не вызывает функцию каждый раз.

2. итак, я предполагаю, что в библиотеке firebase эти экземпляры каким-то образом создаются и кэшируются где-то за кулисами с предоставленной моей конфигурацией firebase?

Ответ №1:

Судя по всему getAuth , вызов кэшируется внутри SDK (я был бы удивлен, если бы это было не так), поэтому многократный вызов не оказывает негативного влияния.

Любой из вариантов, который вы используете, будет работать нормально. Лично я предпочитаю экспортировать экземпляры самостоятельно.