我想使用firestore来存储使用"react-redux-firebase“的配置文件数据。在控制台Expected output of the console中,我预期的firebase.profile输出如下所示,但我的输出是
profile: {isEmpty: true, isLoaded: false}这是我的index.js文件
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
import { createStore, applyMiddleware, compose } from "redux";
import rootReducer from "./store/reducres/rooReducers";
import { Provider, useSelector } from "react-redux";
import thunk from "redux-thunk";
import {
reduxFirestore,
getFirestore,
createFirestoreInstance
} from "redux-firestore";
import { ReactReduxFirebaseProvider, getFirebase, isLoaded} from "react-redux-firebase";
import fbConfig from "./config/fbConfig";
import firebase from "firebase/app";
const store = createStore(
rootReducer,
compose(
applyMiddleware(thunk.withExtraArgument({ getFirestore, getFirebase })),
reduxFirestore(firebase, fbConfig)
)
);
const profileSpecificProps = {
userProfile: 'users',
useFirestoreForProfile: true,
enableRedirectHandling: false,
resetBeforeLogin: false
}
const rrfProps = {
firebase,
config: profileSpecificProps,
dispatch: store.dispatch,
createFirestoreInstance
};
function AuthIsLoaded({ children }) {
const auth = useSelector(state => state.firebase.auth)
if (!isLoaded(auth)) return <div className="center"> <p>Loading Mario Plan...</p></div>;
return children
}
ReactDOM.render(
<Provider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</ReactReduxFirebaseProvider>
</Provider>,
document.getElementById("root")
);
serviceWorker.unregister();项目链接的完整预览full project link有什么问题吗?
发布于 2020-07-14 18:50:38
我认为我们正在遵循相同的教程。
我认为您唯一遗漏的是rrrfProps中的fbConfig。
这对我来说很好用:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { createStore, applyMiddleware, compose } from 'redux';
import rootReducers from './store/reducers/rootReducer';
import { Provider, useSelector } from 'react-redux';
import thunk from 'redux-thunk';
import { getFirebase, reactReduxFirebase, ReactReduxFirebaseProvider, isLoaded } from 'react-redux-firebase';
import { getFirestore, reduxFirestore, createFirestoreInstance } from 'redux-firestore';
import fbConfig from './config/fbConfig';
import firebase from 'firebase/app'
const store = createStore(rootReducers,
compose(
applyMiddleware(thunk.withExtraArgument({getFirebase, getFirestore})),
reduxFirestore(firebase, fbConfig)
)
)
const rrfConfig = {
userProfile: 'users',
useFirestoreForProfile: true
}
const rrfProps = {
firebase,
config: rrfConfig, fbConfig,
dispatch: store.dispatch,
createFirestoreInstance,
}
const AuthIsLoaded = ({children}) => {
const auth = useSelector(state => state.firebase.auth)
if(!isLoaded(auth)) return <div className="center">Loading...</div>
return children
}
ReactDOM.render(
<React.StrictMode>
<Provider store = {store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</ReactReduxFirebaseProvider>
</Provider>
</React.StrictMode>,
document.getElementById('root')
);
serviceWorker.unregister();发布于 2020-09-16 23:59:08
我也做了这个教程,这是我得到的工作索引。有些地方的教程已经过时了,但我遵循了YT的评论,并让项目正常工作。值得注意的是,我的还包括Redux DevTool扩展,这是一个很好的问题解决工具!
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import "bootstrap/dist/css/bootstrap.css";
import * as serviceWorker from "./serviceWorker";
import { createStore, compose, applyMiddleware } from "redux";
import rootReducer from "./store/reducers/index";
import { Provider } from "react-redux";
import ReduxThunk from "redux-thunk";
import {
reduxFirestore,
getFirestore,
createFirestoreInstance,
} from "redux-firestore";
import { ReactReduxFirebaseProvider, getFirebase } from "react-redux-firebase";
import firebaseConfig from "./config/firebase";
import firebase from "firebase/app";
const store = createStore(
rootReducer,
compose(
applyMiddleware(
ReduxThunk.withExtraArgument({ getFirestore, getFirebase })
),
reduxFirestore(firebase, firebaseConfig),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
)
);
const profileSpecificProps = {
userProfile: "users",
useFirestoreForProfile: true,
enableRedirectHandling: false,
resetBeforeLogin: false,
};
const rrfProps = {
firebase,
config: profileSpecificProps,
dispatch: store.dispatch,
createFirestoreInstance,
};
ReactDOM.render(
<Provider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<App />
</ReactReduxFirebaseProvider>
</Provider>,
document.getElementById("root")
);
serviceWorker.unregister();发布于 2020-07-21 07:40:26
特定于配置文件的道具配置应如下所示:
const profileSpecificProps = {
userProfile: 'users',
useFirestoreForProfile: true,
updateProfileOnLogin: false,
};https://stackoverflow.com/questions/62819280
复制相似问题