【发布时间】:2019-11-28 21:55:43
【问题描述】:
我的代码中有一个区域,其中组的用户存储在一个数组中。在某些情况下,我想收集有关用户的其他数据。
这是我目前尝试过的:
async getMembersData(groupUid) {
const members = await this.getMembers(groupUid);
var membersData = {};
Object.keys(members).map((key, i) => {
const member = members[key];
firebase.database().ref(`users/${member.uid}`).once('value', snap => {
membersData[member.uid] = {
'uid': member.uid,
'username': snap.child('username').val(),
'imageUrl': snap.child('imageUrl').val(),
'type': member.type,
};
});
});
return membersData;
}
我通过设置状态和使用 firebase .on() 函数使这段代码的工作方式类似,但我需要它与 .once() 一起工作并返回对象。
【问题讨论】:
-
您可能认为它适用于
on(),但实际上它会在第一次调用getMembersData时返回一个空对象。您需要处理代码是异步的这一事实,例如使用 Renaud 回答中的方法。
标签: javascript firebase react-native firebase-realtime-database