【发布时间】:2018-04-16 17:25:41
【问题描述】:
我正在使用 react native 应用程序从 firebase 数据库中获取数据。这个想法是在从 FirebaseDB 接收到数据后立即调度一个操作来初始化store.appState。问题是收到数据时不会触发调度。我错过了什么?
我正在使用 redux-thunk 中间件。
// 数据库.js
import * as firebase from 'firebase'
const config = {
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "..."
}
const Database = firebase
.initializeApp(config)
.database()
.ref()
export default Database
//actions.js
import database from 'database'
const setInitDataFromFirebase = data => {
return ({
type: SET_DATA_INIT,
payload: {
data
}
})
}
export const loadAction = () => {
return dispatch => {
Database.once('value', snapshot=>{
console.log(snapshot.val()) // i get the log with correct data
dispatch(setInitDataFromFirebase(snapshot.val())) // this is not dispatched
})
}
}
// 容器.js
const View = (appState, loadData) => {
if (!appState) loadData() // appState is null initially
}
const matStateToProps (...) // passes appState
const mapDispatchToProps (...) // passes loadData
export default connect(mapStateToProps, mapDispatchToProps)(View)
}
【问题讨论】:
标签: firebase-realtime-database redux