Привет, ребята, я понял, откуда взялась проблема. Это для всех, кто ищет решение.
react-redux-firebase
и redux-firestore
имеют некоторые проблемы с совместимостью версий, так что пропустите установку последней версии пакетов !
Очевидно, что между старыми и новыми версиями существовали некоторые различия в предоставлении вашему приложению redux firebase provider
. Старый способ может выглядеть так:
const store = createStore(
rootReducer,
composeEnhancers(
reactReduxFirebase(firebase, rrfConfig),
reduxFirestore(firebase),
applyMiddleware(thunk.withExtraArgument({ getFirebase, getFirestore }))
)
);
, но если вы хотите реализовать хуки в своем приложении и использовать useFirestoreConnect
, это не сработает. В новых версиях вам нужно удалить reactReduxFirebase
и reduxFirestore
из createStore
fun c и вместо этого использовать ReactReduxFirebaseProvider
, импортированный из react-redux-firebase
, и обернуть приложение внутри него, например:
<ReduxProvider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<BrowserRouter>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</BrowserRouter>
</ReactReduxFirebaseProvider>
</ReduxProvider>
и переданные реквизиты: firebase, response-redux-firebase config и любые другие вещи, которые вам нужны. параметры rrfProps выглядят следующим образом:
const rrfProps = {
firebase,
config: rrfConfig,
dispatch: store.dispatch,
createFirestoreInstance, //since we are using Firestore
};
, и это конфигурация response-redux-firebase (rrfConfig):
const rrfConfig = {
userProfile: "users",
useFirestoreForProfile: true, // Firestore for Profile instead of Realtime DB
attachAuthIsReady: true, // attaches auth is ready promise to store
};