【发布时间】:2023-03-24 06:32:01
【问题描述】:
我正在尝试通过 2 个数据库调用从 firebase 获取一些数据。 我只为 1 个用户获取帐户的策略如下:
- 获取登录用户的所有帐号
- 新的 fetch 调用以获取帐户数组(及其所有数据)
- 使用完整数组调度调用
我的 firebase 结构如下所示。
我的问题是第二个 fetch 调用总是最后完成。
export const fetchAccounts = () => {
return (dispatch, getState) => {
const accounts = [];
const uid = getState().auth.uid;
return database.ref(`users/${uid}/accounts`).once('value').then((snapshot) => {
snapshot.forEach((element) => {
database.ref(`accounts/${element.key}`).once('value').then((snapshot) => {
accounts.push(snapshot.val());
console.log('snapshot: ', accounts);
})
});
console.log('Acc 1:', accounts);
}).then(() => {
console.log('Acc 2:', accounts)
})
// dispatch call with full array
}
};
我正在从主文件调用操作
reduxStore.dispatch(fetchAccounts()).then(()=>{
renderApp();
});
是否可以等待两个数据库调用完成,然后使用完全填充的数组调用调度函数?欣赏任何想法。
【问题讨论】:
标签: javascript reactjs asynchronous firebase-realtime-database