【发布时间】:2019-11-22 03:34:31
【问题描述】:
我正在尝试在列表中显示有关组中用户的信息。我想收集关于存储在我的数据库中users/ 下的每个成员的其他信息。
我的代码设法收集信息,但仅限于第一个成员。要加载其他成员的数据,我需要导航回另一个屏幕然后返回。
这是我目前尝试过的:
//members object from group/id/members is passed to this function
//e.g. [{"uid":"abc","type":"admin"},{"uid":"def","type":"member"},{"uid":"ghi","type":"member"}]
getMembersData(members) {
const membersData = {};
Object.keys(members).map((key, i) => {
const member = members[key];
firebase.database().ref(`users/${member.uid}`).on('value', snap => {
membersData[member.uid] = {
'uid': member.uid,
'username': snap.child('username').val(),
'imageUrl': snap.child('imageUrl').val(),
'type': member.type,
};
});
});
this.setState({ membersData });
}
换句话说,当我导航到成员屏幕时,当我在视图中映射this.state.membersData 时,只会呈现第一个成员的信息,直到我退出屏幕并返回它。
如果我删除了 firebase 内容,代码就可以正常工作。如何解决此问题,以便在我导航到屏幕时加载所有内容?
【问题讨论】:
标签: firebase react-native firebase-realtime-database