Wenn Sie react-redux-firebase
verwenden zu integrieren redux
mit Firebase
, the v2.0.0
docs show mit reagieren-native mit Beispielen für die Verwendung von entweder native-modules through react-native-firebase oder JS SDK.
Mit der Struktur, die Sie gezeigt haben, kann es auch hilfreich für Sie sein, populate
zu verwenden, um Posts einfach automatisch zu laden, wenn Benutzer geladen werden.
Wenn Sie die Benutzer uid
auf dem Post-Objekt unter owner
haben, könnten Sie so etwas wie:
Home.js
import { compose } from 'redux'
import { connect } from 'react-redux'
import { firebaseConnect, populate } from 'react-redux-firebase'
const populates = [
{ child: 'owner', root: 'users' } // replace owner with user object
]
const enhance = compose(
firebaseConnect([
// passing populates parameter also creates all necessary child queries
{ path: 'posts', populates }
]),
connect(({ firebase }) => ({
// populate original from data within separate paths redux
posts: populate(firebase, 'posts', populates),
}))
)
const SomeComponent = ({ posts }) => <div>{JSON.stringify(posts, null, 2)}</div>
export default enhance(SomeComponent)
App.js
import { createStore, combineReducers, compose } from 'redux'
import { connect } from 'react-redux'
import { reactReduxFirebase, firebaseReducer } from 'react-redux-firebase'
import firebase from 'firebase'
import Home from './Home' // code above
const firebaseConfig = {} // config from firebase console
// react-redux-firebase config
const rrfConfig = {
userProfile: 'users' // automatically manage profile
}
// initialize firebase instance
firebase.initializeApp(config) // <- new to v2.*.*
// Add reduxReduxFirebase enhancer when making store creator
const createStoreWithFirebase = compose(
reactReduxFirebase(firebase, rrfConfig)
)(createStore)
// Add Firebase to reducers
const rootReducer = combineReducers({
firebase: firebaseStateReducer
})
// Create store with reducers and initial state
const initialState = {}
const store = createStoreWithFirebase(rootReducer, initialState)
const App =() => (
<Provider store={store}>
<Home />
</Provider>
);
ReactDOM.render(<App/>, document.querySelector('#app'));
irgendwelche Updates diesbezüglich? – Yasir
Verwenden Sie react-redux-firebase, um Redux mit Firebase zu integrieren? – Scott