【发布时间】:2019-02-18 05:24:51
【问题描述】:
我正在使用 react-native,我想从 firebase 实时数据库中获取数据并设置该数据的状态,然后才加载视图,我不希望用户看到数据被推送和映射在每次加载聊天视图时。
这是我尝试过的
_getMessages = async () => {
let message_array = [];
await firebase.database().ref('User-Message').child(this.state.fromUser).child(this.state.toUser).on('child_added', async (snapshot) => {
let message_id = await snapshot.key;
let message_ref = await firebase.database().ref('Message').child(message_id).once('value', async (payload) => {
await message_array.push(payload.val())
})
await this.setState({ messages : message_array })
})
}
而在我的componentWillMount 中,只需像这样调用_getMessages() 函数
componentWillMount = async () => {
await this._getMessages();
}
在从 firebase 获取所有消息后,如何确保设置消息的状态?
【问题讨论】:
-
您是否在使用任何形式的状态管理? Redux 或 Mobx 会让这一切变得更简单。
-
不,我不是 .. 这是我在 react-native 中的第一个项目,我明天必须交付,所以我没有时间尝试 redux ..
标签: reactjs firebase react-native async-await react-native-android